SQL 基于当前日期获取最近三个月的数据 – MySQL
在本文中,我们将介绍如何使用 SQL 查询语言在 MySQL 数据库中基于当前日期获取最近三个月的数据。
阅读更多:SQL 教程
获取当前日期
在 MySQL 中,可以使用 CURDATE()
函数获取当前日期。这个函数返回一个标准日期格式的字符串,并且不需要任何参数。
以下是获取当前日期的示例 SQL 查询语句:
SELECT CURDATE();
查询结果类似于:
+------------+
| CURDATE() |
+------------+
| 2022-01-01 |
+------------+
获取三个月前的日期
为了获取当前日期的三个月前的日期,我们可以使用 DATE_SUB()
函数。这个函数接受三个参数:日期,要减去的时间间隔,以及时间间隔的单位。
以下是获取三个月前日期的示例 SQL 查询语句:
SELECT DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
查询结果类似于:
+----------------------------------+
| DATE_SUB(CURDATE(), INTERVAL 3 MONTH) |
+----------------------------------+
| 2021-10-01 |
+----------------------------------+
可以看到,当前日期的三个月前的日期是 2021-10-01。
查询最近三个月的数据
使用上述方法获取了三个月前的日期后,我们可以在 SQL 查询语句中使用这个日期来获取最近三个月的数据。假设我们有一张名为 orders
的表,其中包含了订单的信息,其中有一个名为 order_date
的列用来存储订单的日期。
以下是查询最近三个月的订单数据的示例 SQL 查询语句:
SELECT *
FROM orders
WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
AND order_date <= CURDATE();
这个查询语句会返回在当前日期的三个月前和当前日期之间的所有订单数据。
示例
假设我们有以下 orders
表的数据:
+------------+-------+
| order_date | amount|
+------------+-------+
| 2021-09-01 | 100 |
| 2021-10-15 | 200 |
| 2021-11-30 | 300 |
| 2021-12-10 | 150 |
| 2022-01-05 | 250 |
+------------+-------+
我们可以使用上述查询语句来获取最近三个月的订单数据。应用上述查询语句后的查询结果如下:
+------------+-------+
| order_date | amount|
+------------+-------+
| 2021-10-15 | 200 |
| 2021-11-30 | 300 |
| 2021-12-10 | 150 |
| 2022-01-05 | 250 |
+------------+-------+
可以看到,查询结果只包含了在当前日期的三个月前和当前日期之间的订单数据。
总结
通过使用 CURDATE()
函数获取当前日期,然后使用 DATE_SUB()
函数获取三个月前的日期,我们可以很方便地在 MySQL 数据库中查询最近三个月的数据。这对于需要按时间范围进行数据分析和报表生成的任务非常有用。