在SQL中如何选择一个月的第一天?

问题描述:

我只需要选择一个给定datetime变量的月份的第一天。

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

我知道使用这种代码很容易: p>

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 this is not very elegant, and probably not very fast either.

有没有更好的方法来做到这一点? (我使用SQL Server 2008)

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

SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth