Olá
Vou postar um exemplo de código em PL/SQL para somar e subtrair segundos, minutos e horas de um campo date.
Espero que seja útil.
declare
horas_dia integer := 24;
minutos_hora integer := 60;
segundos_minuto integer := 60;
total_horas_dia integer;
total_minutos_dia integer;
total_segundos_dia integer;
atual date;
begin
total_horas_dia := horas_dia;
total_minutos_dia := minutos_hora * horas_dia;
total_segundos_dia := segundos_minuto * minutos_hora * horas_dia;
atual := sysdate;
dbms_output.put_line(‘Data atual…: ‘ || to_char(atual, ‘dd/mon/yyyy hh24:mi:ss’));
— Somando 15 horas a data corrente
dbms_output.put_line(‘+ 15 horas…: ‘ || to_char(atual + (15 / total_horas_dia), ‘dd/mon/yyyy hh24:mi:ss’));
— Subtraindo 15 horas a data corrente
dbms_output.put_line(‘- 15 horas…: ‘ || to_char(atual – (15 / total_horas_dia), ‘dd/mon/yyyy hh24:mi:ss’));
— Somando 15 minutos a data corrente
dbms_output.put_line(‘+ 30 minutos.: ‘ || to_char(atual + (15 / total_minutos_dia), ‘dd/mon/yyyy hh24:mi:ss’));
— Subtraindo 15 minutos a data corrente
dbms_output.put_line(‘- 30 minutos.: ‘ || to_char(atual – (15 / total_minutos_dia), ‘dd/mon/yyyy hh24:mi:ss’));
— Somando 20 segundos a data corrente
dbms_output.put_line(‘+ 20 segundos: ‘ || to_char(atual + (20 / total_segundos_dia), ‘dd/mon/yyyy hh24:mi:ss’));
— Subtraindo 20 segundos a data corrente
dbms_output.put_line(‘- 20 segundos: ‘ || to_char(atual – (20 / total_segundos_dia), ‘dd/mon/yyyy hh24:mi:ss’));
A saída será parecida com essa:
Data atual…: 11/feb/2008 11:23:00
+ 15 horas…: 12/feb/2008 02:23:00
– 15 horas…: 10/feb/2008 20:23:00
+ 30 minutos.: 11/feb/2008 11:38:00
– 30 minutos.: 11/feb/2008 11:08:00
+ 20 segundos: 11/feb/2008 11:23:20
– 20 segundos: 11/feb/2008 11:22:40
Até mais
Pingback: Cálculo da diferença entre datas em Java » Roberto Furutani
Mto bom Jundi!! 🙂 Inté +!!
Boas…
Mt bom mas será que não me pode dar umas ideias de como fazer uma função que devolva o numero de horas decorridas entre duas datas (por exemplo : ‘dd-mm-yyyy hh24-mm-ss – ‘ ‘dd-mm-yyyy hh24-mm-ss’)?
cumprimentos
Tiago Pereira