MySQL选择上个月到(now()-1个月)的所有行,以进行比较

我需要一些帮助来编写MySQL查询,以显示上个月的行,但不显示整个月的行,仅显示直到现在的同一天,一小时和一分钟,直到now()为止,而仅显示一个月前。

因此,例如,如果今天是下午5:25的5/19,我需要选择4/19午夜12:00 am 4/1到5:25 pm的行(当然也要从同一年开始)。

谢谢!

回答:

您可以通过计算前一个月的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个月)的所有行,以进行比较 的全部内容, 来源链接: utcz.com/qa/434093.html

回到顶部