¿Cómo excluyo los días de fin de semana en una consulta de SQL Server?

¿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) 
 SELECT date_created FROM your_table WHERE DATENAME(dw, date_created) NOT IN ('Saturday', '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

Pruebe la función DATENAME() :

 select [date_created] from table where DATENAME(WEEKDAY, [date_created]) <> 'Saturday' and DATENAME(WEEKDAY, [date_created]) <> 'Sunday' 

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 🙂

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 …

Prueba este código

 select (DATEDIFF(DD,'2014-08-01','2014-08-14')+1)- (DATEDIFF(WK,'2014-08-01','2014-08-14')* 2)