Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre a função TRUNC

Boa tarde, pessoal.

Estou com dúvidas sobre o que esse código abaixo trunca? Pois o resultado que ele me trás é apenas a data de hoje (26/03/22) e o horário de 06:03:00 (agora são 18:13, por exemplo). Eu entendo que o 06:03:00 equivale ao total de horas decorridas deste dia, porém e esse 06:03:00 minutos?

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

Alguém sabe me dizer o porquê desses resultados?

2 respostas
solução!

Olá Isabelle,

Oracle usa o datatype DATE que armazena SEMPRE tanto data como hora.

A função TRUNC tem como objetivo truncar uma DATA desprezando o conteúdo HORA.

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

Desse modo ao submeter o comando acima o resultado é data. Hoje 27/03/2022.

No caso do outro comando, para exibir os Minutos na formatação de data usamos MI Do modo como está MM, vai mostrar o mês corrente, isso explica o 03

tente executar:

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

Ahh entendi!

Muito obrigada pela explicação @Claudiomiro!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software