2013-12-19 55 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