- 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_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
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 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 | +-------------------------+-----------------------------+