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

Problema con update y addtime

Estas en el tema de Problema con update y addtime en el foro de Mysql en Foros del Web. Tengo una base de datos donde los trabajadores van introduciendo las horas trabajadas durante y los proyectos donde iran asignadas. Se hace al final del ...
  #1 (permalink)  
Antiguo 21/01/2010, 02:59
 
Fecha de Ingreso: abril-2008
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Problema con update y addtime

Tengo una base de datos donde los trabajadores van introduciendo las horas trabajadas durante y los proyectos donde iran asignadas. Se hace al final del día.
Para que les quadren las horas trabajadas, hay una tabla temporal donde se van sumando las horas. La tabla tiene dos columnas, horas (de tipo TIME), y codigo_trabajador.
Cuando un trabajador no aparece en la table temporal, se crea. Si ya aparece, se hace un update con sus horas. Aquí es donde tengo el problema.
Utilitzo esta consulta (donde $horas es algo como 300 para 3 horas, y $operario el codigo del operario), pero no me funciona:

Código:
UPDATE temp
SET horas=ADDTIME(horas, $horas)
where operario=$operario
Alguna idea?

Saludos.
  #2 (permalink)  
Antiguo 21/01/2010, 04:20
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: Problema con update y addtime

En ADDTIME() ambos valores deben ser horas en formato DATETIME o TIME.
¿Qué es lo que estás introduciendo con esa variable?
Si estás poniendo un entero representando horas, deberías usar DATE_ADD().
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/01/2010, 09:52
 
Fecha de Ingreso: abril-2008
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con update y addtime

La variable $horas es un string: "INTERVAL 3 Hour", pero no debe ser muy correcto.
Con el DATE_ADD puedo diferenciar entre minutos y segundos?

Gracias.


Cita:
Iniciado por gnzsoloyo Ver Mensaje
En ADDTIME() ambos valores deben ser horas en formato DATETIME o TIME.
¿Qué es lo que estás introduciendo con esa variable?
Si estás poniendo un entero representando horas, deberías usar DATE_ADD().
  #4 (permalink)  
Antiguo 21/01/2010, 10:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con update y addtime

Cita:
Con el DATE_ADD puedo diferenciar entre minutos y segundos?
si puedes, siempre y cuando el primer parámetro de entrada de la función sea un datetime o timestamp.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 21/01/2010, 11:24
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: Problema con update y addtime

Cita:
La variable $horas es un string: "INTERVAL 3 Hour", pero no debe ser muy correcto.
No, porque la sintaxis de ADDTIME() es:
Cita:
ADDTIME(expr,expr2)

ADDTIME() añade expr2 a expr y retorna el resultado. expr es una expresión de fecha u hora y fecha, y expr2 es una expresión temporal.

Código MySQL:
Ver original
  1. mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999',
  2.     ->                '1 1:1:1.000002');
  3.         -> '1998-01-02 01:01:01.000001'
  4. mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
  5.         -> '03:00:01.999997'
Por lo que, te darás cuenta, estabas cometiendo un error sintáctico. Ese parámetro (que deberías simplemente enviar como número y no meterte a poner "INTERVAL", era para ADD_DATE().

Para que funcionara, la variable debería haber contenido "03:00:00", por lo menos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 22/01/2010, 03:03
 
Fecha de Ingreso: abril-2008
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con update y addtime

Gracias a todos por las respuestas.
Al final he usado ADDTIME, porque utilizando la variable $horas como lo hacia inicialmente funciona, me dejaba poner la variable entre comillas simples.

Etiquetas: update
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 09:00.