2016-01-07 178 views
1

前3個月,我想當前日期前3個月,選擇在每個月的第一天。SQL得到每個月的第一天當月

因此,例如,如果當前日期是:「2015年11月8日」 我的結果會想:「2015年8月1日」

我寧願如果這是在YYYY-MM- dd格式。

我嘗試這樣做下手,但沒有運氣:

SELECT DATEADD(dd, -DAY('2015-09-01') + 1, @today) 

我已經試過無數的事情,但似乎無法破解它,任何建議或幫助,將不勝感激。謝謝你在前進

+0

請標記與您正在使用的數據庫你的問題。另外,顯示你的嘗試。 –

+0

不用擔心,做到了。 –

+0

你嘗試過什麼,並在失敗? (我有我的最後部分想法) –

回答

10

的邏輯很簡單:

  • 減去該月的日減1天的日期
  • 減3個月

在SQL Server:

select dateadd(month, -3, dateadd(day, 1 - day(dte), dte)) 

當前日期:

select cast(dateadd(month, -3, dateadd(day, 1 - day(getdate()), getdate())) as date) 

而作爲一個字符串:

select convert(varchar(10), 
       dateadd(month, -3, dateadd(day, 1 - day(getdate()), getdate())), 
       120) 
+0

這已經幫了我很多做,完美的作品。 –

+0

謝謝Gordon,我沒有遇到Day功能 – TheGameiswar

相關問題