如何在sql where子句中检查日期时间列值是否等于当前日期

时间:2017-03-08 05:24:26

标签: sql-server date

我在sql DB中有一个日期时间列 - 名为check_time。我想编写一个选择查询,其中check_time应该等于今天的日期(不需要考虑什么时间。只需要检查当前日期)。 例如,表中的check_time作为03/08/2017 12:00:00.000 AM插入。 我写的如下

SELECT * FROM time_details  
WHERE check_time = DATEADD(day, DATEDIFF(day,0,GETDATE()),0)

但它什么也没有回报。

5 个答案:

答案 0 :(得分:0)

这是正确的语法:

SELECT * FROM time_details where (DATEDIFF(d, check_time, GETDATE()) = 0)

答案 1 :(得分:0)

只需CAST今天的DATE日期。

<强>查询

select * from time_details 
where check_time = cast(getdate() as date);

答案 2 :(得分:0)

尝试

SELECT * FROM time_details where DATE(check_time) =CURDATE()

当CURDATE返回当前日期时,DATE函数将从datetime字段中提取日期。

答案 3 :(得分:0)

检查sql查询

SELECT * FROM time_details其中DATE(check_time)= DATE(NOW())

答案 4 :(得分:0)

这应该有效

SELECT * FROM time_details其中check_time = convert(varchar,getdate(),101)