[Pgsql-ayuda] Hora y fecha

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Thu, 30 Aug 2001 10:13:00 -0500 (CDT)


> Que tal a todos,
>
> tengo un problema, del cual no se c=F3mo solucionarlo,
>
> Estoy haciendo una aplicaci=F3n en php y postgres 7.0.3, donde estoy poni=
endo hora
> y fecha en diferentes tablas, y necesito restar el tiempo de una tabla al=
 de
> otra para obtener el intervalo entre una actualizaci=F3n y otra, el probl=
ema es
> que no se c=F3mo hacer la operaci=F3n ya que como tales horas y fechas ya=
 est=E1n en
> campos no puedeo formatearlas para usar mktime. Es necesario que pueda en=
contrar
> las horas y minutos entre una hora y otra, as=ED como los d=EDas.
>
> Si alguien tiene resuelto este asunto, le agradecer=E9 de antemano.

Te sugiero usar Perl y el m=F3dulo Date::Calc, har=EDas algo as=ED:

use Date::Calc qw(Delta_DHMS);
use DBI

$dbh=3DDBI->connect("dbi:Pg:dbname=3D'basedatos'",'user','passwd') or die "=
Me mor=ED! - $!";

($fechahora1,$fechahora2) =3D $dbh->selectrow_array("SELECT a.fechahora,
    b.fechahora FROM tabla1 a, tabla2 b WHERE condicion =3D 'cosa'");

@fecha1 =3D &cadena_a_fecha($fechahora1);
@fecha2 =3D &cadena_a_fecha($fechahora2);

@diferencia =3D Delta_DHMS(@fecha1,@fecha2);

Listo. Te dejo de tarea la funcion cadena_a_fecha, que debe convertir la
cadena que Postgres te da a un arreglo ($anio,$mes,$dia,$hora,$min,$seg).
El resultado (@diferencia) queda como ($dias,$horas,$minutos,$segundos).

Saludos,

------------------------------------------------------------
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52)5623-1118
Desarrollo y Admon. de Sistemas en Red - FES Iztacala - UNAM
Departamento de Seguridad en Computo   -   DGSCA    -   UNAM
------------------------------------------------------------
Quidquid latine dictum sit, altum viditur.