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
segunda-feira, 11 de fevereiro de 2008
Cálculo de tempo com Oracle PL/SQL
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário