MySQL 查询 – 查询今天和过去30天的记录
当我们需要在MySQL数据库中查询一些特定时间范围内的记录时,常常需要用到日期函数,本篇文章将通过以今天为基准,查询过去30天内的记录为例,介绍MySQL中常用的日期函数。
阅读更多:MySQL 教程
日期函数
MySQL中主要的日期和时间函数包括CURDATE()、NOW()、DATE_SUB()、DATE()等。下面简要介绍它们的用途:
- CURDATE(): 返回当前日期,不带时间
- NOW(): 返回当前日期和时间
- DATE_SUB(date, INTERVAL expr type): 返回从给定日期减去一定时间间隔后的日期
- DATE(date): 返回给定日期的日期部分,不带时间
查询今天和过去30天的记录
假设我们要查询“orders”表中,今天以及过去30天内的所有订单记录,可以采用DATE_SUB()函数结合BETWEEN关键字,如下SQL语句:
SELECT *
FROM orders
WHERE order_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE();
上述SQL语句中,CURDATE()函数会返回当前日期,而DATE_SUB()函数减去了30天的时间间隔,得到向前推30天的日期。然后使用BETWEEN关键字查找范围内的订单日期。
另外,如果我们要查询一周内的订单记录,可以将DATE_SUB()函数的第二个参数改为INTERVAL 7 DAY。
总结
MySQL中的日期函数在处理时间范围内的记录查询中非常强大。在以上示例中,我们使用CURDATE()、NOW()、DATE_SUB()等函数,根据需要灵活运用这些函数能够更方便地进行时间范围内的记录查询。