Just nu i M3-nätverket
Jump to content

Hjälp med datum


Chrippe_sbg

Recommended Posts

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?

 

Link to comment
Share on other sites

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.)

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...