valores sentencias listas lista datos consulta sql-server tsql date weekend

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'')