- Categorias:
DATE_PART¶
Extrai a parte da data ou hora especificada de uma data, hora ou carimbo de data/hora.
- Alternativas:
EXTRACT , HOUR / MINUTE / SECOND , YEAR* / DAY* / WEEK* / MONTH / QUARTER
Sintaxe¶
DATE_PART( <date_or_time_part> , <date_or_timestamp_expr> )
DATE_PART( <date_or_time_part> FROM <date_or_time_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¶
Isto mostra um exemplo simples de extração da parte de uma DATE:
SELECT DATE_PART(quarter, '2024-04-08'::DATE);
+----------------------------------------+
| DATE_PART(QUARTER, '2024-04-08'::DATE) |
|----------------------------------------|
| 2 |
+----------------------------------------+
Isto mostra um exemplo de extração da parte de um TIMESTAMP:
SELECT TO_TIMESTAMP(
'2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
DATE_PART(year, "TIME_STAMP1") AS "EXTRACTED YEAR";
+-------------------------+----------------+
| TIME_STAMP1 | EXTRACTED YEAR |
|-------------------------+----------------|
| 2024-04-08 23:39:20.123 | 2024 |
+-------------------------+----------------+
Isto mostra um exemplo de conversão de um TIMESTAMP em o número de segundos desde o início da época Unix (meia-noite de 1.º de janeiro de 1970):
SELECT TO_TIMESTAMP(
'2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
DATE_PART(epoch_second, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
+-------------------------+------------------------+
| TIME_STAMP1 | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2024-04-08 23:39:20.123 | 1712619560 |
+-------------------------+------------------------+
Isto mostra um exemplo de conversão de um TIMESTAMP no número de milissegundos desde o início da época Unix (meia-noite de 1.º de janeiro de 1970):
SELECT TO_TIMESTAMP(
'2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
DATE_PART(epoch_millisecond, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
+-------------------------+-----------------------------+
| TIME_STAMP1 | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2024-04-08 23:39:20.123 | 1712619560123 |
+-------------------------+-----------------------------+