O Structured Query Language (SQL) é o método mais utilizado para recuperar e manipular dados armazenados em um banco de dados Oracle. Além de outros comandos potentes utilizados para processar os valores dos dados, o Oracle SQL proporciona um método para determinar a diferença entre dois pontos no tempo. O Oracle não possui formatos separados para datas e horários, mas utiliza um formato de data única, que consiste tanto em data quanto em hora em uma coluna.
Instruções
-
Encontre duas colunas de data em um banco de dados Oracle. O exemplo usa uma data estática e a sysdate (data do sistema). Suponha que a data atual do sistema é 1 de Janeiro de 2010 às 12:00. Dual é uma relação embutida do sistema Oracle que é útil para testar as consultas que não são dependentes de uma tabela específica. Utilize este comando para exibir os dois valores de data.
select to_char('01/01/2010', 'DD-MM-YYYY HH24:MI:SS') as "Earlier Time", to_char(sysdate, 'DD-MM-YYYY HH24:MI:SS') as "Current Time" from dual;
Earlier Time | Current Time ------------------------------ | ----------------------------- 01/01/2010 00:00:00 | 01/01/2010 12:00:00
-
Altere a consulta para subtrair o valor da hora atual do valor do horário anterior. O resultado é o número de dias entre os dois valores de data. A porção restante do ponto decimal representa dias, e a parte à direita representa qualquer parte fracionada de um dia.
select to_char('01/01/2010', 'DD-MM-YYYY HH24:MI:SS') - to_char(sysdate, 'DD-MM-YYYY HH24:MI:SS') as "difference" from dual;
difference
0.25
-
Altere a consulta para multiplicar o resultado por 24 para converter o valor fracionário de horas.
select (to_char('01/01/2010', 'DD-MM-YYYY HH24:MI:SS') - to_char(sysdate, 'DD-MM-YYYY HH24:MI:SS') * 24 as "hours" from dual;
hours
6