2013-12-19 56 views
0

有点卡住了,最终用户被允许选择年/月,然后收集回溯5个月的数据。我很擅长设置时间戳(yyyy-mm-dd hh:mm:ss)列的初始日期,但是可以将last_day与interval结合使用。因此,如果最终用户选取2013年5月他们可以通过1月1日收集2013年5月31日,所有的数据,2013年使用时间间隔卡住日期

Ex. set @d2:=concat('2013-05','-01'); 
    set @d1:[email protected] - last_day(interval 5 month); 
    select @d1,@d2; 

任何帮助/指导是非常赞赏。

回答

1

函数LAST_DAYtakes a date as an argument,不是一个间隔。

这样看来,你想要的代码是:

set @d1 := LAST_DAY(@d2 - INTERVAL 5 MONTH) 
+0

感谢这个代码,但没有恩将仇报。我运行了代码,但是结果是“2012-12-31”= @ d1而不是“2013-01-01”= @ d1。可以在@ d1添加一天吗? – Atwp67

+0

如果你真的想添加一天,你可以做'LAST_DAY(@ d2 - INTERVAL 5 MONTH)+ INTERVAL 1 DAY' – Toote

+0

你摇滚!找到我需要的东西。感谢您的帮助。 – Atwp67