我有一个datetime
列,我想选择前2个完整月(当前为9月和10月)中的所有行。手动将这个查询编写为:
where date_column between '2018-09-01' and '2018-10-31'
但是如何以编程方式执行此操作,以使结束日期始终正确?我在想
where date_column between concat(substr(now() - INTERVAL 2 month, 1, 7), '-01') and concat(substr(now() - INTERVAL 1 month, 1, 7), '-31')
但是31
不适用于11月,2月等。
答案 0 :(得分:2)
您可以将日期设置为格式,而仅将日期硬编码为1:
date_column BETWEEN
DATE_FORMAT(NOW() - INTERVAL 2 MONTH, '%Y-%m-01') AND
DATE_FORMAT(NOW(), '%Y-%m-01')