获取上个月的行

时间:2017-07-04 10:14:55

标签: mysql

我正在尝试此查询

SELECT *
FROM flexible_products
WHERE YEAR(updated_at) = YEAR(DATE_SUB(CURDATE(), INTERVAL -1 MONTH))
AND MONTH(updated_at) = MONTH(DATE_SUB(CURDATE(), INTERVAL -1 MONTH))

我目前的工作。我想要做的是获取上个月的所有行,

例如,我们今天在2017年7月4日,我想从1月到6月获取行,这不是上述查询的结果。

MySQL中最好的方法是什么?

4 个答案:

答案 0 :(得分:2)

以下查询将返回当前年度1月1日当天或之后更新的所有记录,但大致在当月的第一个月之前。


pip install --upgrade mock
pip install --upgrade distribute

按照以下链接进行正在运行的演示:

Rextester

答案 1 :(得分:0)

你也应该尝试这个,或者你可以在任何两个日期之间获得数据。

SELECT * FROM flexible_products WHERE updated_at BETWEEN DATE_ADD(DATE_FORMAT(NOW(),'%​​Y-%m-01'),INTERVAL -3 MONTH)AND NOW()

日期输出为: -
DATE_ADD(DATE_FORMAT(NOW(),'%​​Y-%m-01'),INTERVAL -3 MONTH)// 2017-04-01
NOW()// 2017-07-04 11:17:38

答案 2 :(得分:0)

有点短。不确定是否也更快

import()

答案 3 :(得分:-1)

如果我理解你,你可以这样做

WHERE updated_at <= '2017-07-01' AND updated_at >= '2017-01-01'