參考出處
當月第一天
DECLARE @StartTime datetime = DATEADD(day,-DAY(GETDATE())+1, CONVERT(datetime,CONVERT(date, GETDATE())))
當月最後一天
DECLARE @EndTime datetime = DATEADD(ss, -1, DATEADD(m,1,@StartTime))
上月第一天
DECLARE @StartTime datetime = DATEADD(day,-DAY(GETDATE())+1, CONVERT(datetime, CONVERT(date, DATEADD(MM, -1,GETDATE()))))
方法二:
德瑞克:SQL Server 學習筆記
需求:
計算與目前日期為基礎,其相差特定月數的最後一天
公式:
SELECT DATEADD(MM, DATEDIFF(MM, -1, GETDATE()) + <相差特定月數>, 0) - 1 AS N'xxx月最後一天' 請參考以下的範例程式碼:DECLARE @date DATETIMESET @date = GETDATE()
SELECT DATEADD(MM, DATEDIFF(MM, -1, @date), 0) - 1 AS N'本月最後一天' , @date N'今天'
SELECT DATEADD(MM, DATEDIFF(MM, -1, @date) - 1, 0) - 1 AS N'前一個月最後一天' , @date N'今天'
SELECT DATEADD(MM, DATEDIFF(MM, -1, @date) + 1, 0) - 1 AS N'下一個月最後一天' , @date N'今天'
SELECT DATEADD(MM, DATEDIFF(MM, -1, @date) - 2, 0) - 1 AS N'前兩個月最後一天' , @date N'今天'
SELECT DATEADD(MM, DATEDIFF(MM, -1, @date) + 2, 0) - 1 AS N'下兩個月最後一天' , @date N'今天'
沒有留言:
張貼留言