我怎样才能在SQL中选择一个月的第一天?

我只需要选择给定日期时间变量的月份的第一天。

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

select CAST(CAST(YEAR(@mydate) AS VARCHAR(4)) 
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)

但这不是很优雅,可能也不是很快。

有一个更好的方法吗 ? (我正在使用SQL Server 2008)


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

除了上述所有答案之外,还有一种基于sql 2012引入的函数的方法

SELECT DATEFROMPARTS(YEAR(@mydate),MONTH(@mydate),1)

SQL Server 2008:

SELECT DATEADD(DAY,1,EOMONTH(@mydate,-1))
链接地址: http://www.djcxy.com/p/94365.html

上一篇: How can I select the first day of a month in SQL?

下一篇: Best approach to remove time part of datetime in SQL Server