MySQL Select 从 NOW()-1 Day获取记录
在MySQL中,使用NOW()函数可以获取当前日期和时间。如果需要从NOW()日期-1天获取某些记录,则可以使用DATE_SUB()函数和适当的日期格式。
阅读更多:MySQL 教程
语法
以下是从NOW()-1天选择记录的基本语法:
SELECT column_name(s)
FROM table_name
WHERE DATE_FORMAT(date_column_name,'%Y-%m-%d')=DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'), INTERVAL 1 DAY);
示例
假设我们有一个名为“orders”的订单表,其中包含以下信息:
| order_id | customer_name | order_time |
|---|---|---|
| 1 | John | 2021-10-01 12:00:00 |
| 2 | Lily | 2021-10-02 16:00:00 |
| 3 | Tom | 2021-10-03 09:00:00 |
| 4 | Nancy | 2021-10-04 11:00:00 |
| 5 | Jack | 2021-10-05 10:00:00 |
如果我们要检索所有在昨天下单的订单记录,请使用以下查询:
SELECT order_id, customer_name, order_time
FROM orders
WHERE DATE_FORMAT(order_time,'%Y-%m-%d')=DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'), INTERVAL 1 DAY);
该查询将返回以下记录:
| order_id | customer_name | order_time |
|---|---|---|
| 1 | John | 2021-10-01 12:00:00 |
此查询只检索了2021年10月1日下单的订单,因为我们使用了DATE_SUB()函数,该函数从NOW()日期减去1天,并将结果与日期列进行比较。
总结
可以使用DATE_SUB()函数从MySQL中选择从NOW()-1天获取记录。必须使用正确的日期格式进行比较,否则查询将不起作用。
极客教程