No PostgreSQL, o
extract() A função recupera subcampos como ano, mês, hora ou minuto, parte de um valor de data/hora. É equivalente ao
date_part() função, embora com uma sintaxe ligeiramente diferente. Sintaxe
A sintaxe fica assim:
EXTRACT(field FROM source) Onde:
fieldis é um identificador ou string que seleciona qual campo extrair do valor de origem.sourceé um carimbo de data e hora ou um intervalo .
Exemplo – carimbo de data/hora
Aqui está um exemplo básico para demonstrar como recuperar um campo de um timestamp valor.
SELECT extract(hour FROM timestamp '2022-10-30 10:11:35'); Resultado:
10
Este exemplo recupera o campo de hora de um timestamp valor.
Como mencionado, o primeiro argumento pode ser um identificador ou string. Esta é uma das diferenças entre
extract() e date_part() . Ao usar date_part() , você deve fornecer uma string para este argumento. Aqui está o mesmo exemplo novamente, exceto como uma string.
SELECT extract('hour' FROM timestamp '2022-10-30 10:11:35'); Resultado:
10
Aqui está um exemplo com o mesmo timestamp, mas desta vez eu recupero o campo year.
SELECT extract(year FROM timestamp '2022-10-30 10:11:35'); Resultado:
2022
Exemplo - Intervalo
Neste exemplo, recupero uma parte de data de um intervalo valor.
SELECT extract(hour FROM interval '7 hours 45 minutes'); Resultado:
7
No próximo exemplo, a função retorna corretamente o número de horas, embora eu forneça apenas o número de minutos.
SELECT extract(hour FROM interval '120 minutes'); Resultado:
2
No entanto, não conte com esta técnica. Você pode descobrir que nem sempre obtém o resultado esperado.
Por exemplo:
SELECT extract(hour FROM interval '100 minutes'); Resultado:
1
E outro:
SELECT extract(minute FROM interval '2 hours'); Resultado:
0
Nomes de campo
O primeiro argumento pode ser qualquer um dos seguintes:
centurydaydecadedowdoyepochhourisodowisoyearmicrosecondsmillenniummillisecondsminutemonthquartersecondtimezonetimezone_hourtimezone_minuteweekyear
Estes são os mesmos valores válidos para
date_part() função.