我希望牢记几天,以获取上个月同一天的记录,这些天将被跳过,应该在第二天包括在内。
例如3月31日不存在2月31日,因此它应该跳过查询,并且如果我想获取4月30日的记录,它将提供所需的结果,但是5月1日,3月31日将被跳过。 / p>
当前,我正在使用
SELECT * FROM registrations WHERE orderdate = DATE_SUB(CURDATE(), INTERVAL 1 month)
如何在mysql查询中解决此问题?
对不起,如果我无法传达我的查询。
答案 0 :(得分:1)
请考虑以下逻辑,该逻辑仅在减去一个月没有 导致较早的日期值时才保留记录:
SELECT *
FROM registrations
WHERE
orderdate = DATE_SUB(CURDATE(), INTERVAL 1 month) AND
DAY(orderdate) = DAY(DATE_SUB(CURDATE(), INTERVAL 1 month));