Como determinar o número de horas entre dois tempos no Oracle SQL

Escrito por sara wayne | Traduzido por ilve maria
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como determinar o número de horas entre dois tempos no Oracle SQL
O Oracle SQL pode determinar o número de horas entre dois tempos (hour image by Mykola Velychko from Fotolia.com)

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.

Nível de dificuldade:
Moderado

Outras pessoas estão lendo

O que você precisa?

  • Banco de dados Oracle
  • Ferramenta Interactive SQL

Lista completaMinimizar

Instruções

  1. 1

    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

  2. 2

    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

  3. 3

    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

Dicas & Advertências

  • Usa a função to_char para variar o formato dos campos de data.
  • Use o mesmo procedimento para determinar o número de semanas entre as duas datas, alterando o "multiply by 24" (multiplicar por 24) por "divide by 7" (dividir por 7).
  • Não some, multiplique ou divida valores de data.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível