Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como obter a data atual no Oracle

Problema:


Você deseja obter a data atual (sem a hora) no Oracle.

Solução 1 (se você não se importar com os zeros como hora):

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Por exemplo, se você executasse essa consulta em 16 de junho de 2021, a tabela de resultados ficaria assim:
data_atual
2021-06-16T00:00:00Z

Discussão:


O Oracle não possui um tipo de dados que armazene apenas a data sem a hora. Mas se você não se importa com os zeros no lugar da hora, você pode simplesmente armazenar uma data em um DATE tipo de dados (que armazena a data e a hora no Oracle). Para obter a data e hora atuais como DATE valor, você pode simplesmente usar CURRENT_DATE . Para se livrar da hora (e ter zeros), você precisa truncar a data:
SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Solução 2 (se você quiser apenas a data e não zeros no lugar da hora):

SELECT
  TO_CHAR(CURRENT_DATE, 'yyyy-MM-dd') AS current_date
FROM dual;

Por exemplo, se você executasse essa consulta em 16 de junho de 2021, a tabela de resultados ficaria assim:
data_atual
2021-06-16

Discussão:


Para obter um texto de VARCHAR2 tipo que armazena uma data, você pode usar o TO_CHAR() função no Oracle. Você precisa especificar o carimbo de data/hora a ser convertido como o primeiro argumento e no formato em que deseja armazenar a data como o segundo argumento.

Como você deseja a data atual, o primeiro argumento é CURRENT_DATE . O segundo argumento é sua escolha. Por exemplo, 'yyyy-MM-dd' significa 'ano-mês-dia', onde o mês é numérico em vez de texto. A tabela abaixo apresenta alguns formatos de data de exemplo e a respectiva saída para a data 16 de junho de 2021.
formato de data resultado
'AAAA-MM-DD' 2021-06-16
'AAAA/MM/DD' 2021/06/16
'AAAA MM DD' 2021 06 16
'DD-MON-AAAA' 16-JUN-2021
'DD-MON-AA' 16-JUN-21
'FMMês DD, AAAA' 16 de junho de 2021

Você pode ler mais sobre formatos de data aqui.