Signup/Sign In
Ask Question
Not satisfied by the Answer? Still looking for a better solution?

How can I select the first day of a month in SQL?

I just need to select the first day of the month of a given DateTime variable.

I know it's quite easy to do using this kind of code:
select CAST(CAST(YEAR(@mydate) AS VARCHAR(4)) 
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)


But unfortunately, this is not very elegant, and not very fast either.

Is there a better way to do this? I'm using SQL Server 2008.
by

2 Answers

rahul07

SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth
pankajshivnani123
Starting with SQL Server 2012:

SELECT DATEADD(DAY,1,EOMONTH(@mydate,-1))

Login / Signup to Answer the Question.