Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

DATEADD(MESE, DATEDIFF(MESE, 0, GETDATE()), 0) Qualcuno può spiegarmi questo

questo ti darà il primo del mese per una determinata data

inner selectselect DATEDIFF(MONTH, 0, GETDATE()) darà il numero di mesi dal 1900-01-01

ecco 1350

questo verrà aggiunto a 1900-01-01 , ma solo i mesi

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

che è l'inizio del mese corrente.

Penso che questo sia il modo più efficiente per trovare l'inizio di un mese per una determinata data.