如何使用MySQL 選擇今天和過去30 天內的資料庫記錄
此問題旨在檢索過去30 天內新增的記錄,具有顯示所需的日期轉換。提供的查詢嘗試在 WHERE 子句中使用 DATE_FORMAT,但它不會按預期限制選擇。
解決方案
正確的解決方案包括在SELECT 子句:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
原因更正
MySQL 的DATE_FORMAT函數將日期轉換為特定格式,但它不會修改底層日期值。因此,它應該應用在 WHERE 子句之後,該子句指定感興趣的日期範圍。
其他注意事項
如果create_date 儲存為具有非- 的DATETIME零時間組件,在WHERE 子句中使用CURDATE() 將不會選擇今天的記錄。為了解決這個問題,請使用 NOW() 來取代:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
以上是如何擷取最近 30 天(包括今天)的 MySQL 記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!