在過去的三年時間:
WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 3 HOUR)
AND NOW()
過去七年時間:
WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 7 HOUR)
AND NOW()
對於過去十二個月時間:
WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 12 HOUR)
AND NOW()
如果您想要指定數據作爲一個字符串,使用方法:
WHERE column BETWEEN DATE_SUB(STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T'), INTERVAL 3 HOUR)
AND STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T')
...雖然說實話,你可以使用這個一樣好:
WHERE column BETWEEN STR_TO_DATE('2010-07-08 04:57:45', '%Y-%m-%d %T')
AND STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T')
如果不工作,那麼我想知道如果列將值存儲爲字符串/ varchar而不是DATETIME。
參考:
我用了下面的查詢,但它沒有給我正確的結果 $ sql ='SELECT * FROM'order' WHERE myDateField BETWEEN DATE_SUB(「2010-07-08 07:57:45」,INTERVAL 3 HOUR) AND「2010-07-08 07:57:45」'; – Autolycus 2010-08-11 00:17:18
@ user295189:使用單引號,而不是雙引號。如果您使用的是字符串,請使用'STR_TO_DATE('2010-07-08 07:57:45','%Y-%m-%d%T')'將字符串可靠地轉換爲DATETIME – 2010-08-11 00:21:54
不工作..仍然給我只有2記錄相同的日期和時間-07-08 07:57:45' – Autolycus 2010-08-11 00:29:53