century

The century

SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');Result: 20SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 21

Det första århundradet börjar vid 0001-01-01 00:00:00:00 AD, även om de inte visste det då. Denna definition gäller för alla länder med gregoriansk kalender. Det finns inget sekelnummer 0, man går från -1 sekel till 1 sekel. Om du inte håller med om detta kan du skriva ditt klagomål till: Pope, Cathedral Saint-Peter of Roma, Vatican.

PostgreSQL-versioner före 8.0 följde inte den konventionella numreringen av århundraden, utan returnerade bara årtalsfältet dividerat med 100.

day

För tidsstämpelvärden används fältet dag (i månaden) (1 – 31) ; för intervallvärden, antalet dagar

SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 16SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');Result: 40

decade

Årsfältet år dividerat med 10

SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 200

dow

Veckensdagen som söndag (0) till lördag (6)

SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');Result: 5

Bemärk att extracts numrering av veckodagarna skiljer sig från den som används i to_char(..., 'D')-funktionen.

doy

Årets dag (1 – 365/366)

SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 47

epok

För datum- och tidsstämpelvärden, antalet sekunder sedan 1970-01-01 00:00:00 UTC (kan vara negativt); för intervallvärden, det totala antalet sekunder i intervallet

SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08');Result: 982384720.12SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours');Result: 442800

Så här kan du konvertera ett epokvärde tillbaka till en tidsstämpel:

SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';

(Funktionen to_timestamp kapslar in ovanstående konvertering.)

hour

Hurfältet (0 – 23)

SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 20

isodow

Veckendagen som måndag (1) till söndag (7)

SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');Result: 7

Detta är identiskt med dow utom för söndag. Detta stämmer överens med ISO 8601-numreringen av veckodagarna.

isoyear

Det ISO 8601-veckonummeringsår som datumet infaller i (gäller inte intervall)

SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');Result: 2005SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');Result: 2006

Varje ISO 8601-veckonummeringsår börjar med måndagen i den vecka som innehåller den 4 januari, så i början av januari eller i slutet av december kan ISO-året vara annorlunda än det gregorianska året. Se fältet vecka för mer information.

Det här fältet är inte tillgängligt i PostgreSQL-versioner före 8.3.

mikrosekunder

Sekundfältet, inklusive bråkdelar, multiplicerat med 1 000 000; observera att detta inkluderar hela sekunder

SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');Result: 28500000

millennium

Miljoner år

SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');Result: 3

År under 1900-talet är i det andra millenniet. Det tredje årtusendet började den 1 januari 2001.

PostgreSQL-versioner före 8.0 följde inte den konventionella numreringen av årtusenden, utan returnerade bara fältet år dividerat med 1000.

millisekunder

Fältet sekunder, inklusive bråkdelar, multiplicerat med 1000. Observera att detta inkluderar hela sekunder.

SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');Result: 28500

minut

Minuterfältet (0 – 59)

SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 38

månad

För tidsstämpelvärden, månadens nummer inom året (1 – 12) ; för intervallvärden, antalet månader, modulo 12 (0 – 11)

SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months');Result: 3SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months');Result: 1

kvartal

Vartalet av året (1 – 4) som datumet ligger i

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');Result: 1

sekund

Sekundfältet, inklusive bråkdelar (0 – 59)

SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40');Result: 40SELECT EXTRACT(SECOND FROM TIME '17:12:28.5');Result: 28.5

tidszon

Tidszonens förskjutning från UTC, mätt i sekunder. Positiva värden motsvarar tidszoner öster om UTC, negativa värden motsvarar zoner väster om UTC. (Tekniskt sett använder PostgreSQL UT1 eftersom skottsekunder inte hanteras.)

timezone_hour

Hurkomponenten i tidszonsförskjutningen

timezone_minute

Minuterkomponenten i tidszonsförskjutningen

week

Numret på ISO 8601-veckan med veckonummerering för året. Per definition börjar ISO-veckor på måndagar och den första veckan på ett år innehåller den 4 januari det året. Med andra ord ligger den första torsdagen på ett år i vecka 1 det året.

I ISO:s veckonummereringssystem är det möjligt att datum i början av januari ingår i den 52:a eller 53:e veckan på föregående år och att datum i slutet av december ingår i den första veckan på nästa år. Exempelvis är 2005-01-01-01 en del av den 53:e veckan år 2004 och 2006-01-01-01 en del av den 52:a veckan år 2005, medan 2012-12-31 är en del av den första veckan år 2013. Det rekommenderas att använda fältet isoyear tillsammans med week för att få konsekventa resultat.

SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');Result: 7

year

Fältet year. Tänk på att det inte finns något 0 AD, så subtraktion av BC-år från AD-år bör göras med försiktighet.

SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2001

Lämna ett svar

Din e-postadress kommer inte publiceras.