MySql 获取上个月同一天的行

标签 mysql

我想通过记住将被跳过并应包含在第二天的日子来获取上个月同一天的记录。

例如3 月 31 日,2 月 31 日不存在,所以它应该跳过查询,而且如果我想在 4 月 30 日获取记录,它将根据需要给出结果,但是在 5 月 1 日,3 月 31 日将被跳过。

目前,我正在使用

SELECT * FROM registrations WHERE orderdate = DATE_SUB(CURDATE(), INTERVAL 1 month)

如何在 mysql 查询中解决这个问题?

抱歉,如果我无法表达我的疑问。

最佳答案

考虑以下逻辑,它仅在减去一个月导致较早日期的值时才保留记录:

SELECT *
FROM registrations
WHERE
    orderdate = DATE_SUB(CURDATE(), INTERVAL 1 month) AND
    DAY(orderdate) = DAY(DATE_SUB(CURDATE(), INTERVAL 1 month));

关于MySql 获取上个月同一天的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56895539/

相关文章:

mysql - CodeIgniter 连接器

内存过剩情况下的MySQL调优

mysql - 生成 SQL 查询

MySQL 如果一行出现两次只显示一次,但如果它出现 n 次(不能是两次)则显示它的名字 n 次?

mysql - SQL 获取当前日期和特定时间

MYSQL索引,有什么用?

sql - 如何使用 MySQL 查询用零填充或填充列?

php - PDO 事务在有 10 个插入(到 mysql)语句时超时

mysql - 如何根据 MySQL 中的两个不同条件从同一列检索两个值?

Mysql通过不同的行检查组合