Mysql 获取上个月的行

Mysql 获取上个月的行,mysql,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月的行,这不是上述查询的结果 在

我正在尝试这个问题

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中实现这一点的最佳方法是什么?

下面的查询将返回所有在当年1月1日当天或之后更新但在当月1日之前固定的记录

SELECT *
FROM flexible_products
WHERE updated_at >= DATE_FORMAT(NOW(), '%Y') AND
      updated_at < DATE_FORMAT(NOW() ,'%Y-%m-01')
请按照以下链接进行运行演示:


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

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

你也应该试试这个,否则你可以得到任意两个日期之间的数据

从灵活的产品中选择*,这些产品在更新日期之间进行更新,更新日期为现在,%Y-%m-01',更新间隔为3个月到现在

输出日期为:- 日期添加日期格式现在,%Y-%m-01',间隔-3个月//2017-04-01
现在//2017-07-04 11:17:38稍微短一点。不知道是否也更快

SELECT *
FROM flexible_products
WHERE 
  YEAR(updated_at) = YEAR(CURRENT_DATE) AND
  MONTH(updated_at) < MONTH(CURRENT_DATE())

记录是否应始终在1月和当前1个月之间?是否更新列名?我应满足上个月的要求idea@Ravindra是的,这是日期栏你问了两件不同的事情:从上个月6月1日到6月30日的记录,或者你问了从今年到本月开始的所有事情:1月1日到6月30日。这是什么?我没有投你反对票,因为到目前为止你的问题是正确的。但8月1日一到,你的查询就会失败。