Página 1 de 1

Manejo de tiempo con MySql y Perl

NotaPublicado: 2007-04-11 10:51 @494
por caribesoft
Hola Amigos Perlianos :

Necesito hacer un script Perl para poder filtrar los reportes de servicio que tengan una antigüedad de más de dos horas en el sistema y tengan un estatus "pendiente"

La tabla tiene un campo llamado "Indate" del tipo datetime que guarda la fecha y la hora en que se ingresó el reporte en el sistema y otro que se llama "estatus", que es un varchar.

Mi pregunta es: ¿se puede comparar esta fecha y hora con la fecha y hora actual del sistema y obtener la diferencia en horas?

Algo así
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$sth = $dbh->prepare("SELECT * FROM reportes WHERE estatus='Pendiente' and Indate <= $now ");
$sth->execute();
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Saludos,

Caribesoft

NotaPublicado: 2007-04-11 11:14 @510
por kidd
Hola:

Si quieres la diferencia en horas lo puedes hacer sencillamente con un query de MySQL:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT TIMEDIFF(NOW(), Indate) AS diferencia FROM reportes WHERE estatus='Pendiente'
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El resultado en diferencia sería en formate DATE TIME con la diferencia entre ambas fechas.


Saludos

NotaPublicado: 2007-04-13 13:03 @585
por caribesoft
Gracias Kidd :

Fíjate que no me funcionó con TIMEDIFF, ya que estaba utilizando una versión antigua de Mysql, la 4.0, y tuve que resolverlo con la siguiente query:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$sth = $dbh->prepare("SELECT * FROM reportes WHERE estatus='Sin Asignar' and fecha_ingreso <=  DATE_SUB(now(), INTERVAL 2 HOUR);");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Muchas gracias por el TIP, y espero esto le sirva a alguien que busque algo parecido pero tenga una versión todavía más atrás de MySql. Creo que TIMEDIFF es válida a partir de la 4.2 o algo así.

Muchas gracias como siempre.

Caribesoft