我需要一些帮助来编写 MySQL 查询来显示上个月的行,但不是整个月,只显示直到现在()的同一天、同一小时和同一分钟,但在 1 个月前。
例如,如果今天是 5/19 下午 5:25,我需要从午夜 12:00 4/1 到 4/19 下午 5:25(当然也是同年)选择行。
谢谢!
最佳答案
您可以通过计算前一个月的 last_day 并添加一天来获得该月的第一天。这很尴尬,但我认为这比将日期格式化为字符串并将其用于计算要好。
select
*
from
yourtable t
where
/* Greater or equal to the start of last month */
t.date >= DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY) and
/* Smaller or equal than one month ago */
t.date <= DATE_SUB(NOW(), INTERVAL 1 MONTH)
关于MySQL 选择从上个月到 (now() - 1 个月) 的所有行,用于比较目的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6064687/