获取日期时间小于或等于今天的行,忽略时间

时间:2019-06-17 10:43:43

标签: sql sql-server

我有一个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.9002019-05-16 13:32:17.277的行,而忽略时间部分。

关于如何在sql服务器中执行此操作的任何想法?

2 个答案:

答案 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'。