century

Wiek

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

Pierwszy wiek zaczyna się od 0001-01-01 00:00:00 AD, chociaż wtedy jeszcze o tym nie wiedziano. Ta definicja odnosi się do wszystkich krajów z kalendarzem gregoriańskim. Nie ma wieku numer 0, idziesz od -1 wieku do 1 wieku. Jeśli się z tym nie zgadzasz, napisz swoją skargę do: Papież, Katedra Saint-Peter of Roma, Watykan.

Wydania PostgreSQL przed 8.0 nie stosowały konwencjonalnej numeracji wieków, lecz po prostu zwracały pole roku podzielone przez 100.

dzień

Dla wartości timestamp, pole dzień (miesiąca) (1 – 31) ; dla wartości interwałowych, liczba dni

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

dekada

Pole roku podzielone przez 10

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

dow

Dzień tygodnia jako niedziela (0) do soboty (6)

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

Zauważ, że numeracja dni tygodnia w funkcji extract różni się od numeracji w funkcji to_char(..., 'D').

doy

Dzień roku (1 – 365/366)

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

epoch

Dla wartości dat i znaczników czasu, liczba sekund od 1970-01-01 00:00:00 UTC (może być ujemna); dla wartości interwału, całkowita liczba sekund w interwale

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

Oto jak można przekonwertować wartość epoki z powrotem na znacznik czasu:

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

(Funkcja to_timestamp obudowuje powyższą konwersję.)

hour

Pole godziny (0 – 23)

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

isodow

Dzień tygodnia jako poniedziałek (1) do niedzieli (7)

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

To jest identyczne z dow z wyjątkiem niedzieli. Odpowiada to numeracji dni tygodnia ISO 8601.

isoyear

Rok numeracji tygodniowej ISO 8601, w którym przypada data (nie dotyczy interwałów)

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

Każdy rok numeracji tygodniowej ISO 8601 zaczyna się od poniedziałku tygodnia zawierającego 4 stycznia, więc na początku stycznia lub pod koniec grudnia rok ISO może być inny niż rok gregoriański. Zobacz pole tygodnia aby uzyskać więcej informacji.

To pole nie jest dostępne w PostgreSQL w wersji wcześniejszej niż 8.3.

mikrosekundy

Sekundy, łącznie z częściami ułamkowymi, pomnożone przez 1 000 000; zawiera pełne sekundy

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

tysiąclecie

Tysiąclecie

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

Lata 1900 należą do drugiego tysiąclecia. Trzecie tysiąclecie rozpoczęło się 1 stycznia 2001 roku.

Wydania PostgreSQL przed 8.0 nie stosowały konwencjonalnej numeracji tysiącleci, lecz zwracały pole roku podzielone przez 1000.

milisekundy

Pole sekund, w tym części ułamkowe, pomnożone przez 1000. Zauważ, że obejmuje to pełne sekundy.

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

minuta

Pole minut (0 – 59)

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

miesiąc

Dla wartości znacznika czasu, numer miesiąca w roku (1 – 12) ; dla wartości interwałowych, liczba miesięcy, 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

quarter

Kwartał roku (1 – 4), w którym znajduje się data

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

second

Pole sekund, w tym części ułamkowe (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

timezone

Odchylenie strefy czasowej od UTC, mierzone w sekundach. Wartości dodatnie odpowiadają strefom czasowym na wschód od UTC, wartości ujemne – strefom na zachód od UTC. (Technicznie PostgreSQL używa UT1, ponieważ sekundy przestępne nie są obsługiwane.)

timezone_hour

Komponent godzinowy przesunięcia strefy czasowej

timezone_minute

Komponent minutowy przesunięcia strefy czasowej

week

Numer tygodnia ISO 8601. Z definicji, tygodnie ISO zaczynają się w poniedziałki i pierwszy tydzień roku zawiera 4 stycznia tego roku. Innymi słowy, pierwszy czwartek roku jest w tygodniu 1 tego roku.

W systemie numeracji tygodniowej ISO możliwe jest, aby daty z początku stycznia były częścią 52. lub 53. tygodnia poprzedniego roku, a daty z końca grudnia były częścią pierwszego tygodnia następnego roku. Na przykład, 2005-01-01 jest częścią 53 tygodnia roku 2004, a 2006-01-01 jest częścią 52 tygodnia roku 2005, podczas gdy 2012-12-31 jest częścią pierwszego tygodnia roku 2013. Zalecane jest używanie pola isoyear razem z tygodniem, aby uzyskać spójne wyniki.

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

year

Pole roku. Należy pamiętać, że nie ma 0 AD, więc odejmowanie lat BC od lat AD powinno być wykonywane z ostrożnością.

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.