參考出處
當月第一天
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
DATETIME
SET @
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
'今天'