2015-10-05 121 views
-2

我試圖從MYSQL數據庫中選擇超過1天或24小時的記錄。我無法弄清楚爲什麼這種說法不適用於NOW(),它只有在我手動明確添加日期時纔有效,下面是您的評論代碼:MYSQL選擇大於1天的記錄

date_posted在DB中設置爲「datetime」表。

以這種方式工作(不可取的,因爲只有測試)

SELECT count(DISTINCT my_id) AS 'a' 
FROM my_table 
WHERE date_posted >= DATE_SUB('2015-10-03 09:10:19', INTERVAL 24 HOUR) 

應該以這種方式工作,但它帶來了一個 「0」 計數結果:

SELECT count(DISTINCT my_id) AS 'a' 
FROM my_table 
WHERE date_posted >= DATE_SUB(NOW(), INTERVAL 24 HOUR) 
+0

你試過Curdate()嗎? – yeouuu

+1

你在比較日期和時間,但只想處理日期。嘗試'date(date_post)> curdate - interval 1 day',所以你忽略了時間值。 –

+0

是的,我嘗試了「current_date」,「curdate()」。剛剛嘗試過,「SELECT count(DISTINCT my_id)AS'a'FROM my_table WHERE date(date_posted)> curdate() - interval 1 day」並且它仍然返回一個「0」計數,它只適用於我提到的顯式日期以上。 – Andre

回答

0
SELECT count(DISTINCT my_id) AS 'a' 
FROM my_table 
WHERE date_posted >= subdate(current_date, 1) 

這裏subdate(current_date, 1)將返回你昨天的日期 如果你只想選擇昨天的帖子,然後使用以下內容 WHERE date_posted = subdate(current_date, 1)

+0

它只能像我的代碼一樣工作,如果日期明確地輸入爲: 「SELECT count(DISTINCT my_id)AS'a' FROM my_table WHERE date_posted> = subdate('2015-10-03 09:10:19',1)「 問題在於,它表明MYSQL沒有識別出任何這些調用; 「current_date,now(),curdate()」,很奇怪。 – Andre

+0

可能是你的數據表只有'2015-10-02'不是'2015-10-04'的數據,其中'subdate(current_date,1)'''2015-10-04'。 –

+0

我猜SQL必須說「任何一天或一天​​以上的記錄」。 – Andre