在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