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

Lasă un răspuns

Adresa ta de email nu va fi publicată.