我需要一些帮助来编写 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/

10-13 09:37