sentencias - ¿Cómo excluyo los días de fin de semana en una consulta de SQL Server?
sql server select lista valores (7)
Calcular Dejar días laborables en una columna de tabla como valor predeterminado: actualizado
Si está usando SQL aquí está la consulta que puede ayudarlo: http://gallery.technet.microsoft.com/Calculate...
¿Cómo excluyo valores en una columna DateTime
que son sábados o domingos?
Por ejemplo, dados los siguientes datos:
date_created
''2009-11-26 09:00:00'' -- Thursday
''2009-11-27 09:00:00'' -- Friday
''2009-11-28 09:00:00'' -- Saturday
''2009-11-29 09:00:00'' -- Sunday
''2009-11-30 09:00:00'' -- Monday
este es el resultado que estoy buscando:
date_created
''2009-11-26 09:00:00'' -- Thursday
''2009-11-27 09:00:00'' -- Friday
''2009-11-30 09:00:00'' -- Monday
¡Gracias!
Cuando se trata de cálculos del día de la semana, es importante tener en cuenta la configuración actual de DATEFIRST
. Esta consulta siempre excluirá correctamente los días de fin de semana, utilizando @@DATEFIRST
para tener en cuenta cualquier configuración posible para el primer día de la semana.
SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) NOT IN (0, 1)
La respuesta depende de la configuración de inicio de semana de tu servidor, por lo que
SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (7,1)
si el domingo es el primer día de la semana para su servidor
o
SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (6,7)
si el lunes es el primer día de la semana para su servidor
Comenta si tienes alguna pregunta :-)
Prueba este código
select (DATEDIFF(DD,''2014-08-01'',''2014-08-14'')+1)- (DATEDIFF(WK,''2014-08-01'',''2014-08-14'')* 2)
Pruebe la función DATENAME()
:
select [date_created]
from table
where DATENAME(WEEKDAY, [date_created]) <> ''Saturday''
and DATENAME(WEEKDAY, [date_created]) <> ''Sunday''
Suponiendo que está usando SQL Server, use DATEPART con dw:
SELECT date_created
FROM your_table
WHERE DATEPART(dw, date_created) NOT IN (1, 7);
EDITAR: Debo señalar que el valor numérico real devuelto por DATEPART (dw) está determinado por el valor establecido mediante SET DATEFIRST:
http://msdn.microsoft.com/en-us/library/ms181598.aspx
SELECT date_created
FROM your_table
WHERE DATENAME(dw, date_created) NOT IN (''Saturday'', ''Sunday'')