2012-08-31 165 views
2

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

我已经在网上搜索,但无法找到,对于SQLServer的工作的例子/

谢谢您的帮助!

回答

12

试试这个:

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

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

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

1)使用转换日期上面已经完成的DataType。

2)用varchar转换成具有特定格式的数据类型。

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