Datummanipulation: Lägga till månader i SQL
Funktionsjämförelse med SQL-dialekt
| SQL-variant | Funktion | Syntaxexempel | Hantering vid slutet av månaden |
|---|---|---|---|
| MySQL / MariaDB | DATE_ADD() | DATE_ADD('2023-01-15', INTERVAL 3 MÅNADER) |
Justerar till sista dagen om resultatet är ogiltigt (t.ex. 31 januari + 1 månad → 28 februari) |
| PostgreSQL | INTERVALL | '2023-01-15'::DATE + INTERVAL '3 months' |
Returnerar senaste giltiga dag för översvämning (t.ex. 31 januari + 1 månad → 28 februari) |
| SQL-server | DATEADD() | DATEADD(MONTH, 3, '2023-01-15') |
Returnerar NULL om målmånaden har färre dagar (kan konfigureras via SET DATEFORMAT) |
| Oracle | ADD_MONTHS() | ADD_MONTHS(DATE '2023-01-15', 3) |
Returnerar alltid sista dagen när inmatningen är i slutet av månaden (t.ex. 31 januari + 1 månad → 28 februari) |
Implementeringssteg
- Identifiera datumkolumnen eller det bokstavliga värdet som ska ändras
- Ange antalet månader som ska läggas till (positivt heltal)
- Använd den dialektspecifika funktionen med korrekt parameterordning
- Hantera NULL-indata enligt affärslogikkrav
Nyckelöverväganden
- Skotår påverkar februariresultat i alla SQL-varianter
- Negativa värden subtraherar månader i de flesta implementeringar
- Bråkmånadersvärden rundar vanligtvis av till hela månader
- Tidskomponenter (om sådana finns) bevaras i alla fall
Copyright ©trylatt.pages.dev 2026