2014-10-31 128 views
1

我有一個我無法理清的語法問題。我只是想抓取最近3天的所有記錄。今天MySQL日期和時間間隔 - 日期間的記錄

$result = mysqli_query($link,"SELECT * FROM records WHERE today BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL 3 DAY)"); 

是MySQL的時間戳DB列,如下所示:2014-10-30 16時35分58秒

這個查詢只提供1天的結果,而不是3.可有人幫忙語法問題?

+1

'last 3 days' - 你在找'date_sub'嗎? - 'DATE_SUB(CURRENT_DATE,INTERVAL 3天)和CURRENT_DATE'之間的差距 – sgeddes 2014-10-31 02:22:27

回答

4

DATE_ADD(CURRENT_DATE, INTERVAL 3 DAY)意味着三天前在未來,而不是三天前。除非today列應該表示(例如)預定未來約會的日期,否則通常需要從日期減去天。所以三天前,你需要使用DATE_SUB。我推薦這個查詢:

SELECT * 
FROM records 
WHERE today >= DATE_SUB(CURRENT_DATE, INTERVAL 3 DAY) 
+0

工作!感謝您的詳細解釋。非常感謝。 – BradM 2014-10-31 02:25:06