And*_*rew 59 t-sql sql-server date weekend
如何排除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
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的结果:
date_created
'2009-11-26 09:00:00' -- Thursday
'2009-11-27 09:00:00' -- Friday
'2009-11-30 09:00:00' -- Monday
Run Code Online (Sandbox Code Playgroud)
谢谢!
Luk*_*keH 117
在处理星期计算时,考虑当前DATEFIRST设置很重要.此查询将始终正确排除周末天数,@@DATEFIRST用于计算一周中第一天的任何可能设置.
SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) NOT IN (0, 1)
Run Code Online (Sandbox Code Playgroud)
kev*_*ers 18
SELECT date_created
FROM your_table
WHERE DATENAME(dw, date_created) NOT IN ('Saturday', 'Sunday')
Run Code Online (Sandbox Code Playgroud)
gkr*_*ers 11
假设您使用的是SQL Server,请将DATEPART与dw一起使用:
SELECT date_created
FROM your_table
WHERE DATEPART(dw, date_created) NOT IN (1, 7);
Run Code Online (Sandbox Code Playgroud)
编辑:我应该指出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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112040 次 |
| 最近记录: |