【发布时间】:2017-04-20 21:49:23
【问题描述】:
我想从我的 MySQL 服务器获取过去 x 个月的所有记录。以 2 个月为例(不是从过去 2 个月开始,比如过去 60 天,而是从过去一个月开始等等。如果实际月份是 4 月,我想要 2 月和 3 月的所有记录)。 我尝试了一些查询,最后一个是
SELECT id FROM ranking WHERE (end_date BETWEEN DATE_FORMAT(NOW(), '%Y-%m-01') AND DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 2 MONTH), '%Y-%m-%d'))
“end_date”是我的日期列,它是 DATE 列“2017-04-07”。
上面的查询什么也没返回,我不知道错误在哪里。
【问题讨论】:
-
end_date 是什么数据类型?
-
尝试在您的查询“end_date >= dateadd(month, -2, getdate())”中使用它。让我知道它是否有效
-
@McNets,这只是一个例子,哈哈。实际的查询要大得多,也更复杂一些,所以我对其进行了简化以涵盖“错误”,我必须承认我在发明列名方面很糟糕:/