century

Il secolo

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

Il primo secolo inizia al 0001-01-01 00:00:00 AD, anche se non lo sapevano all’epoca. Questa definizione si applica a tutti i paesi del calendario gregoriano. Non c’è un secolo numero 0, si va da -1 secolo a 1 secolo. Se non siete d’accordo con questo, scrivete il vostro reclamo a: Papa, Cattedrale San Pietro di Roma, Vaticano.

Le versioni di PostgreSQL precedenti alla 8.0 non seguivano la numerazione convenzionale dei secoli, ma restituivano semplicemente il campo dell’anno diviso per 100.

giorno

Per i valori di timestamp, il campo giorno (del mese) (1 – 31); per valori di intervallo, il numero di giorni

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

decade

Il campo dell’anno diviso per 10

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

dow

Il giorno della settimana da domenica (0) a sabato (6)

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

Nota che la numerazione del giorno della settimana di extract differisce da quella della funzione to_char(..., 'D').

doy

Il giorno dell’anno (1 – 365/366)

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

epoch

Per i valori di data e timestamp, il numero di secondi dal 1970-01-01 00:00:00 UTC (può essere negativo); per i valori di intervallo, il numero totale di secondi nell’intervallo

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

Ecco come puoi convertire un valore di epoch in una marca temporale:

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

(La funzione to_timestamp incapsula la conversione di cui sopra.)

ora

Il campo dell’ora (0 – 23)

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

isodow

Il giorno della settimana da lunedì (1) a domenica (7)

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

Questo è identico a dow tranne la domenica. Questo corrisponde alla numerazione ISO 8601 del giorno della settimana.

isoyear

L’anno di numerazione settimanale ISO 8601 in cui cade la data (non applicabile agli intervalli)

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

Ogni anno di numerazione settimanale ISO 8601 inizia con il lunedì della settimana contenente il 4 gennaio, quindi all’inizio di gennaio o alla fine di dicembre l’anno ISO può essere diverso dall’anno gregoriano. Vedere il campo settimana per maggiori informazioni.

Questo campo non è disponibile nelle versioni di PostgreSQL precedenti alla 8.3.

microsecondi

Il campo secondi, incluse le parti frazionarie, moltiplicato per 1 000 000; notare che questo include i secondi interi

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

millennio

Il millennio

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

Gli anni del 1900 sono nel secondo millennio. Il terzo millennio è iniziato il 1° gennaio 2001.

Le versioni di PostgreSQL precedenti alla 8.0 non seguivano la numerazione convenzionale dei millenni, ma restituivano semplicemente il campo anno diviso per 1000.

millisecondi

Il campo secondi, incluse le parti frazionarie, moltiplicato per 1000. Si noti che questo include i secondi pieni.

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

minuto

Il campo dei minuti (0 – 59)

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

mese

Per i valori di timestamp, il numero del mese nell’anno (1 – 12); per i valori di intervallo, il numero di mesi, 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

trimestre

Il trimestre dell’anno (1 – 4) in cui si trova la data

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

secondo

Il campo dei secondi, incluse le parti frazionarie (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

fuso orario

Lo spostamento del fuso orario da UTC, misurato in secondi. I valori positivi corrispondono ai fusi orari a est di UTC, quelli negativi ai fusi orari a ovest di UTC. (Tecnicamente, PostgreSQL usa UT1 perché i secondi bisestili non sono gestiti.)

timezone_hour

Il componente orario dell’offset del fuso orario

timezone_minute

Il componente minuto dell’offset del fuso orario

week

Il numero della settimana dell’anno con numerazione ISO 8601. Per definizione, le settimane ISO iniziano di lunedì e la prima settimana di un anno contiene il 4 gennaio di quell’anno. In altre parole, il primo giovedì di un anno è nella settimana 1 di quell’anno.

Nel sistema di numerazione settimanale ISO, è possibile che le date di inizio gennaio facciano parte della 52a o 53a settimana dell’anno precedente, e che le date di fine dicembre facciano parte della prima settimana dell’anno successivo. Per esempio, 2005-01-01 fa parte della 53a settimana dell’anno 2004, e 2006-01-01 fa parte della 52a settimana dell’anno 2005, mentre 2012-12-31 fa parte della prima settimana del 2013. Si raccomanda di usare il campo isoyear insieme a week per ottenere risultati coerenti.

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

year

Il campo year. Tieni presente che non esiste lo 0 d.C., quindi sottrarre gli anni BC dagli anni AD dovrebbe essere fatto con attenzione.

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.