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