现在,我有一个mysql查询来获取上个月的行date
是时间戳列,
date BETWEEN date_format(NOW() - INTERVAL 1 MONTH, '%Y-%m-01')
AND last_day(NOW() - INTERVAL 1 MONTH);
但问题是,我只获得了上个月30天的记录。它可以在30天或更短的时间内正常工作。但是对于像12月这样的月份,我需要31天的所有记录。这里的修正是什么?谢谢。
答案 0 :(得分:1)
如果您想要上一个月的数据,那么您可以使用减去当月当天的技巧:
where date >= date_sub(date_sub(curdate(), interval day(curdate()) - 1 day), interval 1 month) and
date < date_sub(curdate(), interval day(curdate()) - 1 day)
答案 1 :(得分:0)
我尝试了很多参考文献&amp;最后我得到了我的确切答案。我的最终代码是,
EXTRACT(YEAR_MONTH FROM date) = EXTRACT(YEAR_MONTH FROM CURDATE() - INTERVAL 1 MONTH)
谢谢大家。
答案 2 :(得分:0)
您必须添加加1作为减去一个较低的日期扣除。