¿Cómo puedo seleccionar el primer día de un mes en SQL?

Resuelto Brann asked hace 15 años • 34 respuestas

¿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?

Brann avatar Oct 05 '09 22:10 Brann
Aceptado
SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth
LukeH avatar Oct 05 '2009 15:10 LukeH

Además de toda la respuesta anterior, una forma basada en una función introducida ensql 2012

SELECT DATEFROMPARTS(YEAR(@mydate),MONTH(@mydate),1)
Jithin Shaji avatar Oct 22 '2014 10:10 Jithin Shaji