sql >> Base de Datos >  >> RDS >> Sqlserver

DATEADD(MES, DATEDIFF(MES, 0, GETDATE()), 0) ¿Puede alguien explicarme esto?

esto le dará el primer día del mes para una fecha determinada

selección internaselect DATEDIFF(MONTH, 0, GETDATE()) dará el número de meses desde 1900-01-01

aquí es 1350

esto se agregará a 1900-01-01, pero solo los meses

select DATEADD(MONTH,1350,0) dará 2012-07-01 00:00:00.000

que es el comienzo del mes actual.

Creo que esta es la forma más eficiente de encontrar el comienzo de un mes para una fecha determinada.