Rango Horario consulta
Publicado por andres (5 intervenciones) el 04/05/2019 05:12:23
Hola, Buen día, el código funciona muy bien y es lo que esperaba, pero habrá alguna posibilidad de crear alguna función para que al ir cambiando la hora en: @fec_inicio o @fec_fin me haga el calculo porque por lo que veo el código esta Harcodeado para que funcione con un rango de 35 minutos y solo con la hora de 08:00 a 10:00 !!
Bueno de todas maneras muy agradecido por su ayuda
andres
Codigo:
Bueno de todas maneras muy agradecido por su ayuda
andres
Codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
declare
@fec_inicio DateTime,
@fec_fin DateTime
-- SET DATEFIRST to U.S. English default value of 7.
SET DATEFIRST 7;
SELECT @fec_inicio = '2019-04-30 08:00', @fec_fin = '2019-05-30 10:00'
;WITH FECHAS(fecha, DiaDeAtención) AS (
SELECT @fec_inicio as fecha, DiaDeAtención = datepart(weekday,@fec_inicio)
UNION all
SELECT DATEADD(DAY,1, fecha), datepart(weekday,fecha)
FROM FECHAS
WHERE fecha < @fec_fin
)
-- INTERVALO ENTRE CADA CONSULTA MEDICA-------
,consultas as (
select Minuto = 0 UNION ALL
select Minuto = 35 UNION ALL
select Minuto = 70 UNION ALL
select Minuto = 105
)
-- FIN DE INTERVALO ---------------------------------------------
SELECT DATEADD(minute, c.Minuto, f.fecha) as RANGO from FECHAS F
CROSS JOIN CONSULTAS C
where DATEPART(DW, fecha) = 3 --DIAS DE ATENCION: Lun:2, Mar:3, Mier:4, jue:5; vier:6, sab:7, dom:8
ORDER BY fecha
Valora esta pregunta


0