Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Manejo de tiempo con MySql y Perl

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Mensaje Mie Abr 11, 2007 9:51 am
caribesoft
Perlero Nuevo
Perlero Nuevo
Registrado: 09 May 2006
Mensajes: 73
Ubicación: Cancun
Manejo de tiempo con MySql y Perl Responder citando

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í
Perl:
$sth = $dbh->prepare("SELECT * FROM reportes WHERE estatus='Pendiente' and Indate <= $now ");
$sth->execute();

Saludos,

Caribesoft
Mensaje Mie Abr 11, 2007 10:14 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1390
Ubicación: México
Responder citando

Hola:

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

SQL:
SELECT TIMEDIFF(NOW(), Indate) AS diferencia FROM reportes WHERE estatus='Pendiente'


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


Saludos
Mensaje Vie Abr 13, 2007 12:03 pm
caribesoft
Perlero Nuevo
Perlero Nuevo
Registrado: 09 May 2006
Mensajes: 73
Ubicación: Cancun
Responder citando

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:

Perl:
$sth = $dbh->prepare("SELECT * FROM reportes WHERE estatus='Sin Asignar' and fecha_ingreso <=  DATE_SUB(now(), INTERVAL 2 HOUR);");


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
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group