Categorias:

Funções de data e hora

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_time_expr> )

Retornos

O tipo de dados do valor de retorno é NUMBER.

Notas de uso

  • date_or_time_part deve ser um dos valores listados em Partes de data e hora com suporte.

    • 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 for dayofweek ou yearofweek (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 de calendário e dias úteis.

  • date_or_time_expr pode ser uma data, hora ou carimbo de data/hora.

Exemplos

Isto mostra um exemplo simples de extração da parte de uma DATE:

SELECT DATE_PART(QUARTER, '2013-05-08'::DATE);
+----------------------------------------+
| DATE_PART(QUARTER, '2013-05-08'::DATE) |
|----------------------------------------|
|                                      2 |
+----------------------------------------+

Isto mostra um exemplo de extração da parte de um TIMESTAMP:

SELECT TO_TIMESTAMP('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(YEAR, "TIME_STAMP1") AS "EXTRACTED YEAR";
+-------------------------+----------------+
| TIME_STAMP1             | EXTRACTED YEAR |
|-------------------------+----------------|
| 2013-05-08 23:39:20.123 |           2013 |
+-------------------------+----------------+

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('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(EPOCH_SECOND, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
+-------------------------+------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2013-05-08 23:39:20.123 |             1368056360 |
+-------------------------+------------------------+

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('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(EPOCH_MILLISECOND, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2013-05-08 23:39:20.123 |               1368056360123 |
+-------------------------+-----------------------------+