MySQL 如何从当前日期在MySQL中获取过去两天的记录?

MySQL 如何从当前日期在MySQL中获取过去两天的记录?

在许多Web应用程序中,常常需要从数据库中获取最近的数据记录。有时候需要两天之内的记录,有时候需要一周之内的记录,这些需求在各种场景中都非常常见。在本文中,我们将会讨论如何使用MySQL数据库获取过去两天内的数据记录。

阅读更多:MySQL 教程

获取当前日期和过去两天的日期

在处理日期的时候,我们需要清楚地知道MySQL数据库是如何处理日期的。在MySQL中,日期和时间类型是日期值的组合。日期是指年、月和日的组合,而时间指小时、分钟和秒的组合。以下是获取当前日期和过去两天的日期的MySQL函数:

  • NOW(): 获取当前日期和时间
  • DATE_SUB(NOW(), INTERVAL 2 DAY): 获取当前日期和过去两天的日期

使用下面的SQL语句可以获得当前日期和过去两天的日期:

SELECT NOW();
SELECT DATE_SUB(NOW(), INTERVAL 2 DAY);

这将会返回以下结果:

+---------------------+
| NOW()               |
+---------------------+
| 2022-02-02 20:17:24 |
+---------------------+

+-----------------------------+
| DATE_SUB(NOW(), INTERVAL 2 DAY) |
+-----------------------------+
| 2022-01-31 20:17:24         |
+-----------------------------+

我们可以看到,第一个查询结果显示当前日期和时间,而第二个查询结果显示当前日期和过去两天的日期,也就是 2022-01-31

过滤日期

使用 WHERE 子句来过滤日期。在下面的例子中,我们查询 orders 表并且只返回过去两天内的数据记录:

SELECT * FROM orders
WHERE order_date >= DATE_SUB(NOW(), INTERVAL 2 DAY);

在这里我们用了 DATE_SUB() 函数来获取当前日期和过去两天的日期,并将其与 order_date 列进行比较。这将会返回最近两天内的所有订单。

使用 BETWEEN 运算符

我们可以使用 BETWEEN 运算符来获取两个时间标记之间的记录。下面的例子将会返回过去两天内的订单,可以满足 order_date 列 >= FROM_UNIXTIME(1643602692)order_date 列 <= NOW()的所有记录。

SELECT * FROM orders
WHERE order_date BETWEEN FROM_UNIXTIME(1643602692) AND NOW();

在这里我们用了 FROM_UNIXTIME() 函数,该函数将Unix时间戳转换为日期格式。

总结

在MySQL中获取过去两天内的数据记录非常简单。我们只需要使用MySQL内置的日期函数来获取当前日期和过去两天的日期,然后使用 WHERE 子句过滤日期或使用 BETWEEN 运算符获取过去两天内的记录即可。

参考链接:

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程