sql >> Databasteknik >  >> RDS >> Sqlserver

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) Kan någon förklara detta för mig

detta ger dig den första i månaden för ett givet datum

inre selectselect DATEDIFF(MONTH, 0, GETDATE()) kommer att ange antalet månader från 1900-01-01

här är det 1350

detta kommer att läggas till 1900-01-01, men bara månaderna

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

vilket är början av innevarande månad.

Jag tror att detta är det mest effektiva sättet att hitta början på en månad för ett givet datum.



  1. Välj minsta värde per objekt i MySQL

  2. MySQL Slå samman två tabeller med kommaseparerade värden

  3. SQL-funktion returtyp:TABLE vs SETOF-poster

  4. Initcap hoppa över ord som är mindre än 4 tecken