如何找到与日期比较的日子?

时间:2009-10-26 12:58:53

标签: sql-server

使用SQL Server 2005

表1

日期

20090501
20090502
20090503
20090504
20090505

...

我想找到与日期比较的日子,然后我想跳过日期=星期日的日期。

预期产出

20090501
20090502
20090504
20090505

...

所以跳过了20090503,因为它是星期天。

如何进行查询?

4 个答案:

答案 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默认配置为英语。