mysql - SQL - 检索前天的记录

标签 mysql sql

我正在尝试检索前天的记录。下面的查询返回昨天的记录...

SELECT * FROM table WHERE `DATE` > DATE_ADD(CURDATE(), INTERVAL -2 DAY) AND `DATE` < CURDATE()

以下查询返回前一天和昨天的记录...

SELECT * FROM table WHERE `DATE` > DATE_ADD(CURDATE(), INTERVAL -3 DAY) AND `DATE` < CURDATE()

虽然我很想只获取前天的记录。我正在尝试以下查询,但它不起作用...

SELECT * FROM table WHERE `DATE` > DATE_ADD(CURDATE(), INTERVAL -3 DAY) AND `DATE` < DATE_ADD(CURDATE(), INTERVAL -2 DAY)

有人能给我指出正确的方向吗?

最佳答案

您可以使用更简单的方法,不使用 DATE_ADD 或 DATE_SUB:

SELECT * FROM table WHERE DATE = CURDATE() - INTERVAL 2 DAY  

检索昨天的记录:

SELECT * FROM table WHERE DATE = CURDATE() - INTERVAL 1 DAY  

但是如果您的 DATE 列是 DATETIME :

SELECT * FROM table WHERE DATE BETWEEN CURDATE() - INTERVAL 2 DAY AND CURDATE() - INTERVAL 1 DAY

关于mysql - SQL - 检索前天的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509063/

相关文章:

mysql - 更新某些用户的表值,但保持某些行不变

php - Mysql获取两个表的所有连接记录

java - 如何从具有不同ip系列的远程系统访问mysql数据库

MySQL 查询 avg 和 count 大于一个值

SQL Select 语句分成分组/ block

mysql - 存储包含200万条日志数据的大型CSV文件

php - 通过 PHP 避免 Mysql 中的重复

MySQL 使用通配符替换查询无法运行

php - 如何从多个表中获取多个计数?

sql - 如何在 PostgreSQL 中使用带有 PreparedStatement 的 IN 子句