century
The century
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
The first century starts at 0001-01-01 00:00:00:00 AD, embora eles não o soubessem na altura. Esta definição aplica-se a todos os países do calendário gregoriano. Não há um século número 0, você vai do século -1 ao século 1. Se você não concordar com isso, por favor escreva sua reclamação para: Papa, Catedral Saint-Peter de Roma, Vaticano.
PostgreSQL lançamentos antes do 8.0 não seguiram a numeração convencional de séculos, mas apenas devolveram o campo do ano dividido por 100.
dia
Para valores de timestamp, o campo do dia (do mês) (1 – 31) ; para valores de intervalo, o número de dias
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 16SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');Result: 40
década
O campo ano dividido por 10
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 200
dow
O dia da semana como domingo (0) a sábado (6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');Result: 5
Nota que extract
a numeração do dia da semana difere da função to_char(..., 'D')
.
doy
O dia do ano (1 – 365/366)
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 47
época
Para valores de data e timestamp, o número de segundos desde 1970-01-01 00:00:00 UTC (pode ser negativo); para valores de intervalo, o número total de segundos no intervalo
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
Aqui está como você pode converter um valor de época de volta para um carimbo de tempo:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';
(A função to_timestamp
encapsula a conversão acima.)
hora
O campo da hora (0 – 23)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 20
isodow
O dia da semana como segunda (1) a domingo (7)
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');Result: 7
Isto é idêntico a dow excepto para domingo. Isto corresponde ao dia da semana de numeração ISO 8601.
isoyear
O ano de numeração da semana ISO 8601 em que a data cai (não aplicável a intervalos)
SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');Result: 2005SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');Result: 2006
Cada ano de numeração da semana ISO 8601 começa com a segunda-feira da semana que contém o 4 de Janeiro, portanto no início de Janeiro ou final de Dezembro o ano ISO pode ser diferente do ano Gregoriano. Veja o campo semana para mais informações.
Este campo não está disponível em versões PostgreSQL anteriores a 8.3.
microssegundos
O campo segundos, incluindo partes fracionárias, multiplicado por 1 000 000; note que isto inclui segundos completos
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');Result: 28500000
milênio
O milênio
SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');Result: 3
Os anos do século XIX estão no segundo milênio. O terceiro milênio começou em 1 de janeiro de 2001.
Os lançamentos do PostgreSQL antes de 8.0 não seguiram a numeração convencional de milênios, mas apenas retornaram o campo ano dividido por 1000.
milissegundos
O campo segundos, incluindo partes fracionárias, multiplicado por 1000. Note que isto inclui os segundos completos.
SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');Result: 28500
minuto
O campo minutos (0 – 59)
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 38
mês
Para valores de timestamp, o número do mês dentro do ano (1 – 12) ; para valores de intervalo, o número de meses, 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
Trimestre do ano (1 – 4) em que a data está em
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');Result: 1
Segundo
O campo dos segundos, incluindo as partes fracionárias (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 horário
O fuso horário offset do UTC, medido em segundos. Os valores positivos correspondem aos fusos horários a leste do UTC, os valores negativos correspondem aos fusos horários a oeste do UTC. (Tecnicamente, o PostgreSQL usa UT1 porque os segundos bissextos não são tratados.)
Fuso horário_hora
A componente horária do offset do fuso horário
Fuso horário_minuto
A componente minuto do offset do fuso horário
Semana
O número da semana de numeração ISO 8601 do ano. Por definição, as semanas ISO começam às segundas-feiras e a primeira semana de um ano contém o 4 de janeiro desse ano. Em outras palavras, a primeira quinta-feira de um ano é na semana 1 desse ano.
No sistema de numeração da semana ISO, é possível que as datas de início de Janeiro façam parte da 52ª ou 53ª semana do ano anterior, e que as datas de fim de Dezembro façam parte da primeira semana do ano seguinte. Por exemplo, 2005-01-01 faz parte da 53ª semana do ano 2004, e 2006-01-01 faz parte da 52ª semana do ano 2005, enquanto 2012-12-31 faz parte da primeira semana de 2013. É recomendado usar o campo isoyear junto com a semana para obter resultados consistentes.
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');Result: 7
ano
O campo ano. Tenha em mente que não há 0 AD, portanto subtrair os anos BC dos anos AD deve ser feito com cuidado.
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2001