如何在mysql的最后一个日期之前选择最后n个月?
我有一个问题与MySQL。 我有一个表像记录和记录有一个字段registered_date包含日期。我想选择最近n个月,但不是在当前日期之前。我必须选择registered_date包含的最后日期。如何在mysql的最后一个日期之前选择最后n个月?
registered_date
- 2015年5月30日
- 2015年5月29日
- 2015-05-28
- 2015年5月27日
- ...
我们在七月。最后一次是2015-05-30。我想在2015-05-30前的最后3个月选择。
我试着喜欢这些:
.... where registered_date > DATE_SUB(now(), INTERVAL 6 MONTH)
和
registered_Date between now() - interval 30 day and now()
谢谢。
你需要找到最大的日期,然后在此之前选择了三个月
select t.*
from table t cross join
(select max(registered_date) as maxrd from table t) m
where t.registered_date >= maxrd - interval 3 month;
只记得如果你的最后日期是2015年5月30日,这也会给你2015-02-28而> =应用-3个月的时间间隔。只是说,所以你(Yusuf)知道什么数据出来了。 – MrSimpleMind
@MrSimpleMind。 。 。这是一个值得的点。该操作说明“2015年5月30日前三个月”,但没有具体说明这意味着什么。 –
当然,我同意。只是想让他知道他可以得到什么数据。好的质疑,这是答案。 +1当你做交叉连接。比为每一行选择最大日期更好。 – MrSimpleMind
你尝试喜欢这个
SELECT * FROM table WHERE registered_date >= now()-interval 3 month;
是的,我做了这个解决方案 –
能否请您分享该表的结构,一些样本数据,并你试图获得这些数据的结果? – Mureinik
@Mureinik现在清楚了吗? –