Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) Quelqu'un peut-il m'expliquer cela

cela vous donnera le premier du mois pour une date donnée

select interneselect DATEDIFF(MONTH, 0, GETDATE()) donnera le nombre de mois à partir du 1900-01-01

ici c'est 1350

cela sera ajouté à 1900-01-01 , mais seulement les mois

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

qui est le début du mois en cours.

Je pense que c'est le moyen le plus efficace de trouver le début d'un mois pour une date donnée.