如何排除SQL Server查询中的周末date?

如何排除星期六或星期日的DateTime列中的值?

例如,给出以下数据:

 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 

这是我正在寻找的结果:

 date_created '2009-11-26 09:00:00' -- Thursday '2009-11-27 09:00:00' -- Friday '2009-11-30 09:00:00' -- Monday 

谢谢!

在处理星期计算时,考虑当前的DATEFIRST设置很重要。 此查询将始终正确排除周末天数,使用@@DATEFIRST来说明一周中第一天的任何可能设置。

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

假设你正在使用SQL Server,使用DATEPART和dw:

 SELECT date_created FROM your_table WHERE DATEPART(dw, date_created) NOT IN (1, 7); 

编辑:我应该指出,由DATEPART(dw)返回的实际数值是由SET DATEFIRST设置的值确定的:
http://msdn.microsoft.com/en-us/library/ms181598.aspx

试试DATENAME()函数:

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

答案取决于你的服务器周启动设置,所以它也是

 SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (7,1) 

如果星期天是您服务器的第一天

要么

 SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (6,7) 

如果星期一是您服务器的第一天

如果您有任何问题,请留言:-)

计算将表格列中的工作天数保留为默认值 – 已更新

如果您使用SQL这里是可以帮助您的查询: http://gallery.technet.microsoft.com/Calculate …

试试这个代码

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