Pular para o conteúdo

Fóruns SQL e PL/SQL Guardar intevalos de horas, qual a melhor forma? Guardar intevalos de horas, qual a melhor forma?

#90042
fsitja
Participante

    Você pode definir sua coluna da forma abaixo, restringindo via check constraint para não colocarem intervalo de dias, apenas horas, minutos e segundos.
    A grande vantagem é fazer as operações aritméticas direto em cima de DATE e INTERVAL, somando e subtraindo sem dificuldade.


    CREATE TABLE teste_intervalo
    (interv_hora INTERVAL DAY TO SECOND(2),
    CONSTRAINT ck_intervalo_hora CHECK (EXTRACT(DAY FROM (interv_hora)) = 0));

    Table created.

    0,03 seconds

    insert into teste_intervalo values (INTERVAL '10:09:40' HOUR TO SECOND);

    1 row(s) inserted.

    insert into teste_intervalo values (INTERVAL '2 22:58:30' DAY TO SECOND);

    ORA-02290: restrição de verificação (FSITJA.CK_INTERVALO_HORA) violada