› Fóruns › SQL e PL/SQL › Guardar intevalos de horas, qual a melhor forma? › Guardar intevalos de horas, qual a melhor forma?
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