2017-03-08 71 views
0

我有一個日期時間列在SQL DB - 名爲check_time。我想寫一個select查詢,其中這個check_time應該等於今天的日期(不需要考慮什麼時間,只需要檢查當前日期)。 例如表中的check_time插入爲03/08/2017 12:00:00.000 AM。 我寫下如下如何檢查日期時間列值等於當前日期在SQL條款

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

但它什麼也沒有返回。

回答

0

這是正確的語法:

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

在'='附近顯示不正確的語法。 – user2431727

+0

立即嘗試,查看我的更新 –

+0

其中返回空行。即使有一列值爲03/08/2017 12:00:00.000 AM – user2431727

0

CAST今天的日期DATE

查詢

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

顯示錯誤 - 類型日期不是定義的系統類型。 – user2431727

+0

@ user2431727:check_time列的數據類型是什麼? – shyamu

0

嘗試用

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

日期函數將同時CURDATE將返回當前日期從您只提取日期時間字段。

+0

顯示錯誤 - 「DATE」不是公認的內置函數名稱。 – user2431727

+0

對不起,我誤解了這個問題,你指的是SQL Server,我是關於MySQL的。只需使用GETDATE()而不是CURDATE,並且在上面校正的check_time字段 –

+0

附近沒有任何功能。不返回行。 SELECT * FROM time_details其中check_time = GETDATE() – user2431727

0

檢查與SQL查詢

SELECT * FROM time_details其中date(CHECK_TIME)= DATE(NOW())

+0

SHOWS'date_format'不是公認的內置函數名稱。 – user2431727

0

這應該工作

SELECT * FROM time_details其中CHECK_TIME =轉換(VARCHAR ,getdate(),101)

相關問題