This post is to provide scripts to identify FIRST and LAST usages for a given date.
--How to get first day of a month
Declare @Date Datetime = GETDATE()
SELECT DATEADD(month, DATEDIFF(month, 0, @date), 0);
--How to get Last day of a month
Declare @Date Datetime = GETDATE()
SELECT DATEADD(DAY,-1,DATEADD(mm, DATEDIFF(m,0,@Date)+1,0));
--How to get first day of a Calendar Year
DECLARE @DATE DATETIME = GETDATE()
SELECT DATEADD(YY, DATEDIFF(YY,0,@DATE), 0) AS STARTOFYEAR
--How to get Last day of a Calendar Year
DECLARE @DATE DATETIME = GETDATE()
SELECT DATEADD(YY, DATEDIFF(YY,0,@DATE) + 1, -1) AS ENDOFYEAR
I will add more usages of FIRST/LAST day to the above list as I come across in future.
–first day of a month
select DATEADD(DAY,1,EOMONTH(GETDATE(),-1))
–Last day of a month
select EOMONTH(GETDATE())
LikeLike
Hi Vinuraj, Thanks for reading and sharing the script.
EOMONTH() function has been introduced in SQL Server 2012. My intention is to provide script which works in all SQL Server versions.
However, a good point and I will definitely add this as a separate script in my post.
LikeLike