我正在使用 SQLServer 2008。我有一个带有字段 Y 的表 X,它是日期时间格式。在我的查询的 WHERE 语句中,我只想保留字段 Y 的日期等于当前日期的行。
我搜索了互联网,但找不到适用于 SQLServer/ 的示例
感谢您的帮助!
我正在使用 SQLServer 2008。我有一个带有字段 Y 的表 X,它是日期时间格式。在我的查询的 WHERE 语句中,我只想保留字段 Y 的日期等于当前日期的行。
我搜索了互联网,但找不到适用于 SQLServer/ 的示例
感谢您的帮助!
试试这个:
WHERE CONVERT(DATE, Y) = CONVERT(DATE, getdate())
您需要将日期转换为特定格式。因为当您将日期以 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)