Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) Alguém pode me explicar isso


isso lhe dará o primeiro dia do mês para uma determinada data

seleção internaselect DATEDIFF(MONTH, 0, GETDATE()) dará o número de meses de 1900-01-01

aqui é 1350

isso será adicionado a 1900-01-01 , mas apenas os meses

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

que é o início do mês atual.

Eu acho que essa é a maneira mais eficiente de encontrar o início de um mês para qualquer data.