在 MySQL 中选择今天到过去 30 天的记录
在 MySQL 中,您可以使用以下命令检索指定日期范围内的记录如下所示的查询:
SELECT * FROM table_name WHERE date_column BETWEEN start_date AND end_date
但是,当尝试将结果限制为前一个时30 天后,用户可能会遇到查询返回所有记录的问题。要解决此问题,了解正确的日期格式语法至关重要。
在提供的查询中:
create_date between DATE_FORMAT(curdate(),'%m/%d/%Y') AND (DATE_FORMAT(curdate() - interval 30 day,'%m/%d/%Y'))
WHERE 子句中错误地使用了 DATE_FORMAT 函数。应在 SELECT 子句中应用此函数,以格式化检索到的日期以供显示:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') AS formatted_date FROM table_name WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
此外,考虑 create_date 列的数据类型也很重要。如果将其存储为具有非零时间分量的 DATETIME,则上述查询将无法准确选择今天的记录。在这种情况下,请使用 NOW() 代替:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') AS formatted_date FROM table_name WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
通过应用这些更正,查询将正确检索在指定 30 天范围内创建的记录,格式为所需的“mm/dd/yy”格式。
以上是如何选择最近30天(包括今天)的MySQL记录?的详细内容。更多信息请关注PHP中文网其他相关文章!