How to Get First and Last Day of a Month in SQL Server

To get the first day of the previous month in SQL Server, use the following code:

SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) - 1, 0)

first_day_of_last_month

To get the last day of the previous month:

SELECT DATEADD(DAY, -(DAY(GETDATE())), GETDATE())

last_day_of_last_month

To get the first day of the current month:

SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)

first_day_of_current_month

To get the last day of the current month:

SELECT DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) + 1, 0))

last_day_of_current_month

 

To get the first day of the next month:

SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) + 1, 0)

first_day_of_next_month

To get the last day of the next month:

SELECT DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) + 2, 0))

last_day_of_next_month

 

 

 

 

In SQL Server 2012 and later you can use EOMONTH Function to Get First and Last Day of a Month in SQL Server:

Here is an example how you can get the last day of the month you specify, using EOMONTH function:

DECLARE @Date1 datetime
SET @Date1 = '04/27/2014'
SELECT EOMONTH (@Date1)

eomonth_specified_date

 

To get the last day of the current month using EOMONTH function:

SELECT EOMONTH (GETDATE())

To get the last day of the previous month specify offset -1:

SELECT EOMONTH (GETDATE(), -1)

To get the last day of the next month specify offset 1:

SELECT EOMONTH (GETDATE(), 1)

EOMONTH function can also be used to calculate the first day of the month. Here is an example:

DECLARE @Date1 datetime
SET @Date1 = '04/27/2014'
SELECT DATEADD(DAY, 1, EOMONTH(@Date1, -1))

eomonth_specified_date_first_day

posted @ 2015-12-18 10:54  finly  阅读(214)  评论(0编辑  收藏  举报