2016-06-07 64 views
0

我需要將where條件設置爲上一年的最後一個日期。 我正在尋找使用dateadd函數的解決方案,但我無法弄清楚。這段代碼給了我本月的最後一天。但如何去年12月的最後一天'2015-12-31'嘗試了不同的方式,但這一切都給我帶來了奇怪的結果。從sybase ase獲得上一年的最後一天

declare @today datetime 
select @today=getdate() 
select convert(varchar(10), dateadd(dd, -day(dateadd(mm, 1, @today)),dateadd(mm, 1, @today)),101) 

回答

1

假設Sybase ASE的,不是ASA或IQ:

declare @lastyear smallint, @dec31 datetime 
select @lastyear = datepart(year,getdate()) - 1 
select @dec31 = convert(datetime, convert(char(4), @lastyear) + "1231") 
select @dec31 

這將產生

-------------------------- 
     Dec 31 2015 12:00AM 

@lastyear包含2015年,過去的一年,那麼文本 「2015」 被concatenaded成「 20151231「,這是AAAAMMDD字符格式中的所需日期。下一步將其轉換爲日期,日期時間或smalldatetime。 @ dec31存儲結果。

0

選擇轉換(日期時間,轉換(VARCHAR,日期部分(年,GETDATE()) - 1)+ '/ 12' + '/ 31')


2015年12月31日上午12時00

相關問題