在 MySQL 中處理日期和時間資料時,通常需要選擇特定日期範圍內的資料。但是,當使用created_at列作為日期時間值時,短日期的預設解釋是午夜。
問題:
您可能會遇到這樣的查詢的情況:儘管行的created_at時間戳落在指定日期內,以下內容不會回傳行range:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06'
解決方案:
問題是查詢實際上選擇的資料範圍是'2011-12-01 00:00:00 ' 到 '2011-12-06 00:00:00'。要解決此問題,有幾種方法:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
SELECT `users`.* FROM `users` WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
使用這些方法中的任何一種都將正確選擇屬於指定範圍內的資料日期範圍,包括具有created_at時間戳記的行,例如“ 2011-12-06” 10:45:36'。
以上是如何在MySQL中正確選擇兩個日期之間的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!