使用SQL Server 2005
表1
日期
20090501
20090502
20090503
20090504
20090505
...
我想找到与日期比较的日子,然后我想跳过日期=星期日的日期。
预期产出
20090501
20090502
20090504
20090505
...
所以跳过了20090503,因为它是星期天。
如何进行查询?
答案 0 :(得分:3)
很多方式;这是一个;
SELECT column
FROM Table
WHERE DATENAME(dw, column) <> 'Sunday'
答案 1 :(得分:1)
好的,我不知道“日期与日期比较”是什么意思,但是要跳过星期天,你可以使用
SELECT Column
FROM Table
WHERE DatePart(weekday, Column) <> 7
你必须检查你为DATEFIRST设置的内容,因为这对DATAPART(工作日)周日返回的内容非常重要。在英文SQL服务器上,标准是返回7,所以如果你使用英文服务器并且没有改变任何东西,那么它应该可以工作。
答案 2 :(得分:0)
完全本地化的版本(感谢所有人指出这一点):
SELECT *
FROM MyTable
WHERE DATEPART(weekday, MyColumn) <> 8 - @@DATEFIRST
答案 3 :(得分:0)
好吧,你可以把它变成DateTime格式,然后一旦你这样做,就可以为where子句做这样的事情。
WHERE DATEPART(dw, DateColumn) <> 7
这假定您的SQL Server默认配置为英语。