如何使用 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中文网其他相关文章!