13

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

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

感谢您的帮助!

4

2 回答 2

34

试试这个:

WHERE CONVERT(DATE, Y) = CONVERT(DATE, getdate())
于 2012-08-31T09:42:36.300 回答
4

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

因此,您可以通过以下两种方式执行此操作并获得实际结果。

1) 使用上面已经完成的Date DataType 进行转换。

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

select * from X where Convert(varchar(10),Y,120) = CONVERT(varchar(10),GETDATE(),120)
于 2012-08-31T12:54:30.083 回答