我有一个datetime字段,想选择日期小于或等于今天但忽略其时间部分的记录。
我的日期时间字段如下:
2019-05-17 13:31:15.900, 2019-05-16 13:32:17.277, 2019-05-24 15:20:03.823
我只想获取日期时间为2019-05-17 13:31:15.900
和2019-05-16 13:32:17.277
的行,而忽略时间部分。
关于如何在sql服务器中执行此操作的任何想法?
答案 0 :(得分:1)
只需将您的专栏和今天的日期都投射到DATE
:
SELECT * FROM MyTable
WHERE CAST(dt AS DATE) <= CAST(GETDATE() AS DATE)
答案 1 :(得分:0)
您可以尝试将GETDATE()
转换为日期类型,以便与午夜的明天进行比较:
SELECT *
FROM yourTable
WHERE dt < CAST(DATEADD(day, 1, GETDATE()) AS date);
-- earlier than tomorrow at midnight
撰写此答案的日期为2019年6月17日,因此上述查询将返回其日期时间严格小于 于2019年6月18日午夜的任何记录。因此,最新记录将是'2019-06-17 23:59:59'。