¿Cómo puedo seleccionar el primer día de un mes en SQL?
¿Cómo se puede seleccionar el primer día del mes de una variable DateTime determinada?
Sé que es bastante fácil de hacer usando este tipo de código:
select CAST(CAST(YEAR(@mydate) AS VARCHAR(4))
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)
Esto no es muy elegante ni muy rápido.
¿Hay una mejor manera de hacer esto?
Aceptado
SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth
Además de toda la respuesta anterior, una forma basada en una función introducida ensql 2012
SELECT DATEFROMPARTS(YEAR(@mydate),MONTH(@mydate),1)