2009/9/28 Gilbson Cardoso Parreira <[email protected]>:
> Boa tarde,
>
> estou com problema no retorno de calculo de horas com dois campos timestamp
> tipo:
>
> exemplo:
>
> data1: 2009-09-28 11:44:42
> data2: 2009-09-29 13:00:00
>
> select id_pcp11, data_1, data_2, age(data_2, data_1) as tempo
>
> onde é retornado em tempo : 1 day 00:11:53
>
> eu gostaria de uma funcao que retornasse em horas e estou com dificuldades
>
Você pode usar uma função do tipo:
bdteste=# CREATE OR REPLACE FUNCTION em_horas (interval) RETURNS text AS
bdteste-# $$
bdteste$# SELECT to_char(extract(day FROM $1)*24+extract(hour FROM
$1),'9999') || to_char($1, '":"MI:SS');
bdteste$# $$
bdteste-# LANGUAGE SQL;
CREATE FUNCTION
bdteste=# SELECT em_horas(age('2009-09-29
13:00:00'::timestamp,'2009-09-28 11:44:42'::timestamp));
em_horas
-------------
25:15:18
(1 registro)
mas repare que ela considera os dias como sendo de 24 horas, o que nem
sempre é válido, veja por ex. o início e término do horário de verão
quando os dias tem 23 e 25 horas.
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral