SQL Server - calcular numero de lunes o martes entre dos fechas

 
Vista:
sin imagen de perfil

calcular numero de lunes o martes entre dos fechas

Publicado por Javier (8 intervenciones) el 18/11/2013 13:39:51
Buenos días, estoy diseñando un informe y para ello necesito obtener el número de lunes o martes que existe entre dos fechas por ejemplo para 01-11-2013 a 30-11-2013 existen 4 lunes, 5 viernes,etc..
no se como puedo obtener este datos, espero me puedan ayudar.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

calcular numero de lunes o martes entre dos fechas

Publicado por Isaias (4558 intervenciones) el 19/11/2013 19:45:14
Crea una función de usuario, donde pases como parámetros 2 fechas, creas un ciclo y vas sumando de acuerdo al DATEPART(dw, tufecha), de acuerdo a la siguiente tabla:

1 domingo
2 lunes
3 martes
4 miércoles
5 jueves
6 viernes
7 sábado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

calcular numero de lunes o martes entre dos fechas

Publicado por Isaias (4558 intervenciones) el 19/11/2013 20:16:54
Una pequeña guía:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE FUNCTION dbo.udf_DayOfWeek(@dtDate1 DATETIME, @dtDate2 DATETIME, @dayOfWeek int)
RETURNS int
AS
 BEGIN
 DECLARE @Total INT
 SET @Total = 0
 WHILE @dtDate2 > @dtDate1
  BEGIN
   IF DATEPART(dw, @dtDate1) = @dayOfWeek
     SET @Total = @Total + 1
	 SET @dtDate1 = DATEADD(dd, 1, @dtDate1)
	 CONTINUE
  END
  RETURN (@Total)
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

calcular numero de lunes o martes entre dos fechas

Publicado por Alejandro Velazquez (1 intervención) el 26/07/2017 19:01:14
SELECT TOP 1 ((DATEDIFF(day,'2017-07-15','2017-08-10')+IIF(DATEPART(dw,'2017-07-15')>DiaDeLaSemana,DATEPART(dw,'2017-07-15')-DiaDeLaSemana-7,DATEPART(dw,'2017-07-15')-DiaDeLaSemana))/7)+1 AS NoDias FROM Tabla

La variable numerica DiaDeLaSemana cambiala por un numero del 1 al 7:

1 domingo
2 lunes
3 martes
4 miércoles
5 jueves
6 viernes
7 sábado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar