检查日期时间是否在当前日期

时间:2012-08-31 09:40:08

标签: sql sql-server sql-server-2008 tsql where-clause

我正在使用SQLServer 2008.我有一个表格X,字段Y是日期时间格式。在我的查询的WHERE语句中,我只想保留字段Y的日期等于当前日期的行。

我搜索了互联网,但找不到适用于SQLServer /

的示例

感谢您的帮助!

2 个答案:

答案 0 :(得分:16)

试试这个:

WHERE CONVERT(date,Y)=CONVERT(DATE,getdate())

答案 1 :(得分:2)

您需要以特定格式转换日期。因为当您将日期时间数据类型存储在sql server中时,sql server会自动使用默认时间设置日期。 现在,当您使用getdate()进行查询时,它会将当前日期与时间一起使用,因此这与您使用默认时间存储的日期不匹配。

所以你可以用2种方式做到这一点并获得实际结果。

1)使用上面已经完成的日期数据类型进行转换。

2)使用特定格式的 varchar 数据类型进行转换。

select * from X where Convert(varchar(10),Y,120) = CONVERT(varchar(10),GETDATE(),120)