從MySQL 資料庫中選擇兩個日期之間的資料
在MySQL 中,擷取特定日期範圍內的資料是儲存日期時的常見挑戰作為日期時間值。由於預設將午夜解釋為日期的開始,使用 >= 和
考慮您想要選擇created_at 列所在的記錄的場景在「2011-12-01」和「2011-12-06」之間。執行以下查詢將令人驚訝地排除在'2011-12-06 10:45:36' 發生的預期記錄:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06'
原因是MySQL 將結束日期解釋為午夜('2011- 12- 06 00:00:00'),實際上排除了當天稍後創建的記錄。若要選擇預期記錄,請將結束日期修改為「2011-12-07」:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
或者,使用DATE_ADD() 在開始日期中新增天數,建立一個包含所需結束日期的間隔date:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
為了提高可讀性,BETWEEN 運算子可以是利用:
SELECT `users`.* FROM `users` WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
透過調整結束日期或使用DATE_ADD()函數,您可以精確地選擇指定日期範圍內的數據,確保捕獲在預期結束日期建立的所有記錄。
以上是如何在MySQL中正確選擇兩個日期之間的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!