1
resposta

No meu caso o TRUNC(DATA1, 'HH24') só funcionou assim:

No meu caso só consegui utilizar com sysdate assim:

SELECT TO_CHAR(TRUNC(SYSDATE, 'HH24'), 'DD/MM/YYYY HH24:MI:SS') FROM DUAL;

Quando eu uso o sysdate das duas formas mostradas abaixo, ele me retorna apenas a data sem hora nem minutos muito menos segundos:

SELECT SYSDATE FROM DUAL;
SELECT TRUNC(SYSDATE, 'HH24') FROM DUAL;

Para eu conseguir ver a hora, minutos e segundos, só usando este comando abaixo:

SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS') FROM DUAL;

Alguém sabe me dizer o porque? A versão do meu Oracle é esta abaixo:

Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
1 resposta

Olá Renato, tudo bem?

O formato padrão do banco de dados Oracle para datas é o DD/MM/RR, sem a hora, minutos e segundos, então no momento que executa o SYSDATE na query é retornado apenas a data como esta armazenado no banco de dados, por esse motivo você só consegue que seja retornado a hora, minutos e segundos quando passa algum parâmetro. Caso queira alterar o formato padrão do Oracle, você pode seguir o seguinte passo a passo:

  • No SQL Developer acesse Ferramentas (Tools)
  • Preferências (Preferences)
  • Banco de Dados (Databases)
  • NLS

DATA

  • Em formato de Data informe o padrão que deseja utilizar e clique em OK.

DATA ALTERADA

Espero ter ajudado!