- Categorias:
EXTRACT¶
Extrai a parte da data ou hora especificada de uma data, hora ou carimbo de data/hora.
- Alternativas:
DATE_PART , HOUR / MINUTE / SECOND , YEAR* / DAY* / WEEK* / MONTH / QUARTER
Sintaxe¶
EXTRACT( <date_or_time_part> FROM <date_or_time_expr> )
EXTRACT( <date_or_time_part> , <date_or_timestamp_expr> )
Argumentos¶
date_or_time_part
A unidade de tempo. Deve ser um dos valores listados em Partes de data e hora com suporte (por exemplo,
month
). O valor pode ser uma cadeia de caracteres literal ou pode não estar entre aspas (por exemplo,'month'
oumonth
).Quando
date_or_time_part
éweek
(ou qualquer uma de suas variações), a saída é controlada pelo parâmetro de sessão WEEK_START.Quando
date_or_time_part
fordayofweek
ouyearofweek
(ou qualquer uma de suas variações), a saída será controlada pelos parâmetros de sessão WEEK_OF_YEAR_POLICY e WEEK_START.
Para obter mais detalhes, incluindo exemplos, consulte Semanas do ano e dias úteis.
date_or_timestamp_expr
Uma data, uma hora, um carimbo de data/hora ou uma expressão que possa ser avaliada como uma data, uma hora ou um carimbo de data/hora.
Retornos¶
Retorna um valor de tipo de dados NUMBER.
Notas de uso¶
Atualmente, quando date_or_timestamp_expr
é um valor DATE, os seguintes valores date_or_time_part
não são compatíveis:
epoch_millisecond
epoch_microsecond
epoch_nanosecond
Outras partes de data e hora (incluindo epoch_second
) são compatíveis.
Exemplos¶
Especifique a parte year
para extrair o ano de um carimbo de data/hora:
SELECT EXTRACT(year FROM TO_TIMESTAMP('2024-04-10T23:39:20.123-07:00')) AS YEAR;
+------+
| YEAR |
|------|
| 2024 |
+------+
Use EXTRACT com a função DECODE e a parte dayofweek
para retornar o nome completo do dia atual da semana:
SELECT DECODE(EXTRACT(dayofweek FROM SYSTIMESTAMP()),
1, 'Monday',
2, 'Tuesday',
3, 'Wednesday',
4, 'Thursday',
5, 'Friday',
6, 'Saturday',
7, 'Sunday') AS DAYOFWEEK;
+-----------+
| DAYOFWEEK |
|-----------|
| Thursday |
+-----------+
Nota
A saída depende do valor retornado pela função SYSTIMESTAMP quando você executa a consulta. Além disso, você pode usar a função DAYNAME para extrair o nome de três letras do dia da semana da data ou do carimbo de data/hora especificado.