århundrede

Orhundredet

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ørste århundrede starter på 0001-01-01 00:00:00:00 AD, selvom de ikke vidste det dengang. Denne definition gælder for alle lande med gregoriansk kalender. Der er ikke noget århundrede nummer 0, man går fra -1 århundrede til 1 århundrede. Hvis du er uenig i dette, bedes du skrive din klage til: Pope, Cathedral Saint-Peter of Roma, Vatican.

PostgreSQL-udgaver før 8.0 fulgte ikke den konventionelle nummerering af århundreder, men returnerede blot årstalsfeltet divideret med 100.

day

For timestamp-værdier, feltet day (of the month) field (1 – 31) ; for intervalværdier, antallet af dage

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

decade

Årsfeltet divideret med 10

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

dow

Ugedagen som søndag (0) til lørdag (6)

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

Bemærk, at extracts nummerering af ugedage adskiller sig fra to_char(..., 'D')-funktionens nummerering af ugedage.

doy

Dagen i året (1 – 365/366)

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

epoch

For dato- og tidsstempelværdier, antallet af sekunder siden 1970-01-01-01 00:00:00 UTC (kan være negativ); for intervalværdier det samlede antal 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ådan kan du konvertere en epoch-værdi tilbage til et tidsstempel:

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

(Funktionen to_timestamp indkapsler ovenstående konvertering.)

hour

Stemnefeltet (0 – 23)

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

isodow

Ugedag som mandag (1) til søndag (7)

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

Dette er identisk med dow bortset fra søndag. Dette svarer til ISO 8601-nummereringen af ugedage.

isoyear

Det ISO 8601 ugenummereringsår, som datoen falder i (gælder ikke for intervaller)

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

Hvert ISO 8601 ugenummereringsår begynder med mandagen i den uge, der indeholder den 4. januar, så i begyndelsen af januar eller slutningen af december kan ISO-året være forskelligt fra det gregorianske år. Se feltet uge for flere oplysninger.

Dette felt er ikke tilgængeligt i PostgreSQL-udgaver før 8.3.

mikrosekunder

Feltet sekunder, herunder brøkdele, ganget med 1 000 000; bemærk, at dette omfatter hele sekunder

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

millennium

Tusindåret

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

År i 1900-tallet er i det andet årtusinde. Det tredje årtusinde startede 1. januar 2001.

PostgreSQL-udgaver før 8.0 fulgte ikke den konventionelle nummerering af årtusinder, men returnerede blot feltet år divideret med 1000.

millisekunder

Feltet sekunder, inklusive brøkdele, multipliceret med 1000. Bemærk, at dette omfatter hele sekunder.

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

minut

Minutfeltet (0 – 59)

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

måned

For tidsstempelværdier, månedens nummer inden for året (1 – 12) ; for intervalværdier, antallet af måneder, 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

Det kvartal af året (1 – 4), som datoen ligger i

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

sekund

Sekunderfeltet, herunder brøkdele (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

tidszone

Tidszoneforskydning fra UTC, målt i sekunder. Positive værdier svarer til tidszoner øst for UTC, negative værdier til zoner vest for UTC. (Teknisk set bruger PostgreSQL UT1, fordi skudsekunder ikke håndteres.)

timezone_hour

Hurkomponenten af tidszoneforskydningen

timezone_minute

Minutekomponenten af tidszoneforskydningen

week

Tallet på ISO 8601-ugenummereringsugen i året. ISO-uger starter pr. definition om mandagen, og den første uge i et år indeholder den 4. januar i det pågældende år. Med andre ord, den første torsdag i et år ligger i uge 1 i det pågældende år.

I ISO-ugenummereringssystemet er det muligt for datoer i begyndelsen af januar at være en del af den 52. eller 53. uge i det foregående år, og for datoer i slutningen af december at være en del af den første uge i det næste år. F.eks. er 2005-01-01-01 en del af den 53. uge i 2004, og 2006-01-01-01 er en del af den 52. uge i 2005, mens 2012-12-31 er en del af den første uge i 2013. Det anbefales at bruge isoyear-feltet sammen med week for at få konsistente resultater.

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

year

Feltet year. Husk på, at der ikke findes 0 AD, så subtraktion af BC-år fra AD-år skal gøres med forsigtighed.

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.