2016-10-31 50 views
4

我想在此日期格式的特定日期的60天之前預覽日期:2013年3月3日..我如何從此日期減去60天...我使用此代碼,但它沒有工作因爲它只從天數中減去,而不是從月份或年份中減去:如何在sql中預覽日期 - 60天的特定日期格式?

Select LTRIM(DAY(@date - 60))+'-'+CONVERT(varchar(3), DATENAME(MONTH,@date))+'-'+LTRIM(YEAR(@date)) 

任何幫助?

+0

可能最容易轉換爲日期格式,使用內置函數來減去日期然後轉換回來(如果需要)。 – Gidil

+0

@Gidil,內置函數?! –

+0

看看已經給出的答案。 (DateAdd) – Gidil

回答

2

試試這個 -

select REPLACE(CONVERT(VARCHAR(11), DATEADD(dd, -60, cast('03-Mar-2013' as date)), 106), ' ', '-') AS [DD-Mon-YYYY] 
+0

非常感謝:)它工作:) –

+0

沒有足夠的聲望來檢查,因爲它是正確的答案:$ –

+1

它的好友,我每天都在這裏學習,謝謝:) – James

4

嘗試

Select DateAdd(DD,-60,cast('03-Mar-2013' as date)) 

返回

2013-01-02 

要FORMATT

Select Replace(Convert(varchar(11),DateAdd(DD,-60,cast('03-Mar-2013' as date)),106),' ','-') 

返回

02-Jan-2013 
+0

我需要它在相同的格式:03-Mar-2013 –

+0

喜歡03-Jan-2013 –

+0

@BishoyEzzat查看更新 –

相關問題