century
Secolul
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
Primul secol începe la 0001-01-01 00:00:00 AD, deși nu se știa acest lucru la vremea respectivă. Această definiție este valabilă pentru toate țările cu calendar gregorian. Nu există un număr de secol 0, se merge de la -1 secol la 1 secol. Dacă nu sunteți de acord cu acest lucru, vă rugăm să scrieți reclamația dvs. la adresa: Papa, Catedrala Saint-Peter de Roma, Vatican.
PostgreSQL versiunile anterioare versiunii 8.0 nu au urmat numerotarea convențională a secolelor, ci doar au returnat câmpul anului împărțit la 100.
day
Pentru valorile timestamp, câmpul zi (a lunii) (1 – 31) ; pentru valori de interval, numărul de zile
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 16SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');Result: 40
decade
Câmpului de an împărțit la 10
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 200
dow
Ziua săptămânii ca de la duminică (0) la sâmbătă (6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');Result: 5
Rețineți că numerotarea zilelor săptămânii de către extract
diferă de cea a funcției to_char(..., 'D')
.
doy
Ziua anului (1 – 365/366)
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 47
epocă
Pentru valorile de date și timestamp, numărul de secunde din 1970-01-01 00:00:00 UTC (poate fi negativ); pentru valorile de interval, numărul total de secunde din interval
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
Iată cum puteți converti o valoare de epocă înapoi într-o marcă de timp:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';
(Funcția to_timestamp
încapsulează conversia de mai sus.)
hour
Câmp de oră (0 – 23)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 20
isodow
Ziua săptămânii de la luni (1) la duminică (7)
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');Result: 7
Aceasta este identică cu dow, cu excepția zilei de duminică. Aceasta se potrivește cu numerotarea ISO 8601 a zilelor săptămânii.
isoyear
Anul de numerotare a săptămânii ISO 8601 în care se încadrează data (nu se aplică intervalelor)
SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');Result: 2005SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');Result: 2006
Care an de numerotare a săptămânii ISO 8601 începe cu ziua de luni a săptămânii care conține data de 4 ianuarie, astfel încât la începutul lunii ianuarie sau la sfârșitul lunii decembrie anul ISO poate fi diferit de anul gregorian. Pentru mai multe informații, consultați câmpul week.
Acest câmp nu este disponibil în versiunile PostgreSQL anterioare versiunii 8.3.
microsecunde
Câmp de secunde, inclusiv părțile fracționare, înmulțite cu 1 000 000; rețineți că acest câmp include secundele întregi
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');Result: 28500000
mileniu
Mileniul
SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');Result: 3
Anii din anii 1900 sunt în al doilea mileniu. Al treilea mileniu a început la 1 ianuarie 2001.
PostgreSQL versiunile anterioare versiunii 8.0 nu au urmat numerotarea convențională a mileniilor, ci doar au returnat câmpul an împărțit la 1000.
milisecunde
Câmpurile de secunde, inclusiv părțile fracționare, înmulțite cu 1000. Rețineți că aceasta include secundele întregi.
SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');Result: 28500
minute
Câmp de minute (0 – 59)
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 38
luna
Pentru valorile timestamp, numărul lunii în cadrul anului (1 – 12) ; pentru valorile de interval, numărul de luni, 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
trimestru
Trimestrul anului (1 – 4) în care se află data
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');Result: 1
secundă
Câmp de secunde
Câmp de secunde, inclusiv părțile fracționare (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
fus orar
Distanța fusului orar față de UTC, măsurată în secunde. Valorile pozitive corespund zonelor orare la est de UTC, iar cele negative la zonele la vest de UTC. (Din punct de vedere tehnic, PostgreSQL utilizează UT1, deoarece nu se gestionează secundele bisecte)
timezone_hour
Componenta oră a decalajului fusului orar
timezone_minute
Componenta minut a decalajului fusului orar
week
Numărul săptămânii din anul cu numere ISO 8601. Prin definiție, săptămânile ISO încep lunea, iar prima săptămână a unui an conține data de 4 ianuarie a anului respectiv. Cu alte cuvinte, prima zi de joi a unui an se află în săptămâna 1 a acelui an.
În sistemul ISO de numerotare a săptămânilor, este posibil ca datele de la începutul lunii ianuarie să facă parte din a 52-a sau a 53-a săptămână a anului precedent, iar datele de la sfârșitul lunii decembrie să facă parte din prima săptămână a anului următor. De exemplu, 2005-01-01-01 face parte din a 53-a săptămână a anului 2004, iar 2006-01-01-01 face parte din a 52-a săptămână a anului 2005, în timp ce 2012-12-31 face parte din prima săptămână a anului 2013. Se recomandă utilizarea câmpului isoyear împreună cu week pentru a obține rezultate coerente.
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');Result: 7
year
Câmpul year. Rețineți că nu există 0 AD, așa că scăderea anilor BC din anii AD trebuie făcută cu grijă.
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2001