å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 extract
s 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