Just nu i M3-nätverket
Gå till innehåll

Hjälp med datum


Chrippe_sbg

Rekommendera Poster

Jag skulle behöva få lite hjälp med att hitta första dagen på föregående år och dagensdatum förra året.

 

Någon som vet hur?

 

Länk till kommentar
Dela på andra webbplatser

Det här med datum (och klockslag) är något som de flesta databashanterare är usla på att följa SQL-standarden med.

 

För att få ut år-delen från ett datum används EXTRACT, EXTRACT(YEAR FROM datum) (eller YEAR(datum)).

 

För att konvertera mellan olika datatyper används CAST (eller CONVERT).

 

För att få fram dagens datum används CURRENT_DATE (eller kanske GETDATE).

 

För att slå ihop strängar används || (eller CONCAT eller kanske +).

 

Att få fram förra årets första dag:

1. Få fram nuvarande år.

EXTRACT(YEAR from CURRENT_DATE) ger året som heltal

 

2. Minska det med 1.

-1 (fortfarande heltal)

 

3. Lägg till första januari

Konvertera till text och lägg på -01-01 med hjälp av ||.

 

4. Konvertera till datum.

CAST(... as DATE)

 

Bygg ihop delarna:

CAST(CAST(EXTRACT(YEAR from CURRENT_DATE) - 1 as CHAR(4))

|| '-01-01' as DATE)

 

 

För att få fram dagens datum förra året bör du använda CURRENT_DATE minus ett år:

CURRENT_DATE - INTERVAL'1' YEAR

 

Att trixa med 365 dagar och liknade bli himla struligt för skottår, framför allt i kombination med nyår.

 

Även här kan diverse icke-standard krävas för vissa databashanterare...

(ADDTIME t.ex.)

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...