Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Llenar Fechas Automaticamente

Estas en el tema de Llenar Fechas Automaticamente en el foro de Mysql en Foros del Web. Cordial Saludo, Se me ha presentado el siguiente caso y alguien me menciono que usando disparadores se podria hacer, pero la verdad no tengo idea ...
  #1 (permalink)  
Antiguo 08/10/2011, 20:11
 
Fecha de Ingreso: marzo-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Llenar Fechas Automaticamente

Cordial Saludo,

Se me ha presentado el siguiente caso y alguien me menciono que usando disparadores se podria hacer, pero la verdad no tengo idea de como y he estado buscando y no encuentro mucho...

la situacion es la siguiente... se tiene una tabla con 2 campos de fecha como la siguiente:

Código MySQL:
Ver original
  1.   idUser VARCHAR(20) NOT NULL,
  2.   idLugar INT NOT NULL,
  3.   inicio DATETIME NOT NULL,
  4.   final DATETIME,
  5.   PRIMARY KEY (idUser, idLugar, inicio)
  6. );

En esta tabla se insertan datos de visita de un usuario a un lugar, en una fecha y hora determinada... dejando el cambio final nulo, indicando que la persona no ha salido... pero resulta que despues de un tiempo (24 horas por ej.) yo quiero que automaticamente se llene el campo final... de tal forma que la diferencia maxima entre inicio y final sea de 24H.

Otra opcion seria que antes de yo volver a insertar un registro que sea del mismo user, se verifique si existe algun registro sin final de este user y se llene el final, antes de hacer la nueva insercion.

Si alguno me puede ayudar sobre como lograr este procedimiento a nivel de la BD... le estaria sumamente agradecido.
  #2 (permalink)  
Antiguo 09/10/2011, 04:30
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Llenar Fechas Automaticamente

Una duda.. si siempre es 24H, porque no sumas 24H a inicio donde tengas que usar ese valor?
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 09/10/2011, 07:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Llenar Fechas Automaticamente

La única forma de hacer un INSERT o UPDATE en forma automática es por medio de EVENTs, en el caso de MySQL de versión 5.1.x y posteriores.
En caso de no querer usar EVENT, la única solucon es con Tareas Programadas de Windows o el crontab, en Linux.
Cualquier otra cosa, no es funcional.

Este tema (tareas automáticas) es algo recurrente en el foro, por lo que te hubiese convenido usar el buscador del foro para no esperar demasiado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 09/10/2011, 07:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Llenar Fechas Automaticamente

Cita:
Iniciado por miktrv Ver Mensaje
Una duda.. si siempre es 24H, porque no sumas 24H a inicio donde tengas que usar ese valor?
Eso le causaría un problema aritmético: El TIME no puede representar un período de 24 horas, porque su rango es de 00:00:00 a 23:59:59.
Las 24:00:00 son en realidad las 00:00:00 del día siguiente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 10/10/2011, 02:03
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Llenar Fechas Automaticamente

No hay funciones para sumar fechas?

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #6 (permalink)  
Antiguo 10/10/2011, 06:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Llenar Fechas Automaticamente

Yo no dije que no haya funciones de sumar fechas. Lo que digo es que no puedes hacerlo en forma automática desde el SQL sin usar EVENT. Pero los objetos EVENT sólo existen desde la versión 5.1.x, por lo que si usas MySQL 5.0.x no puedes crearlos; y aún hay muchos hosting que no usan el 5.1.x

Volviendo al problema planteado por RenacidoJH, ten en cuenta lo que plantea:
Cita:
(...)en esta tabla se insertan datos de visita de un usuario a un lugar, en una fecha y hora determinada... dejando el cambio final nulo, indicando que la persona no ha salido... pero resulta que despues de un tiempo (24 horas por ej.) yo quiero que automaticamente se llene el campo final... de tal forma que la diferencia maxima entre inicio y final sea de 24H.
Como dije, quiere que se haga automáticamente, sin intervención del usuario, y eso no se puede hacer a menos que tenga la versión de MySQL que digo antes.

Cita:
Otra opcion seria que antes de yo volver a insertar un registro que sea del mismo user, se verifique si existe algun registro sin final de este user y se llene el final, antes de hacer la nueva insercion.
Eso se puede hacer o por programación o por stored procedure, pero aún en el caso del SP, debe hacerse la llamada por programación.


Respecto al rango de representación, si a un DATETIME le sumas 24 horas, pero contiene la hora 00:00:00, pasará de día, y la hora seguirá siendo 00:00:00... ¿Se entiende eso? En la realidad, no existe la hora 24... en ninguna parte de la Tierra, porque esa es la hora cero de otro día.

En cuanto a las funciones de fecha y hora, MySQL tiene más funciones dedicadas a eso que las que posee Oracle, y mucho más detalladas, en algunos aspectos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 10/10/2011, 06:03
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Llenar Fechas Automaticamente

Entonces...??

puse:

"Una duda.. si siempre es 24H, porque no sumas 24H a inicio donde tengas que usar ese valor?"

Porque no usas una función para sumar 24 horas a la fecha y listo?
__________________
Gracias por el Karma :D

empleo ofertas de trabajo

Etiquetas: automaticamente, campos, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:02.