2011-01-30 13 views
11

Necesito agregar 12 horas a un campo de tiempo mysql (no DATETIME) y estoy teniendo problemas.Mysql agrega 12 horas a un campo de tiempo

UPDATE `events` 
SET start_time = DATE_ADD(start_time, INTERVAL 12 HOUR) 
WHERE `start_time` < '11:00:00' 

rendimientos sin errores, pero no cambia nada, porque creo que hora_inicial es un campo de hora.

UPDATE `events` 
SET start_time = start_time + '12:00:00' 
WHERE `start_time` < '11:00:00' 

suma 12 segundos.

gracias

Respuesta

29

Intente utilizar ADDTIME en lugar de DATE_ADD. Usted podría hacer SET start_time = ADDTIME(start_time, '12:00:00')

+0

funciona! gracias, addtime debe ser nuevo, no está en mi manual – sdfor

+0

@sdfor: Me alegra escucharlo. Para los manuales, tiendo a confiar más en el contenido en línea. Para mysql, puede usar http://dev.mysql.com/doc/ – nybbler

+0

muy útil ... gracias por compartir :) –

2
set start_time = ADDTIME(start_time,'12:00:00') 

DATE_ADD funciona bien con marca de tiempo, etc, pero no con TIEMPO

6
UPDATE `events` 
SET start_time = start_time + INTERVAL 12 HOUR 
WHERE `start_time` < '11:00:00' 

Las funciones de MySQL que aceptan INTERVAL argumentos son en su mayoría innecesaria; puede simplemente sumar y restar intervalos con + y -.

+0

Esta consulta debería funcionar, y aún funciona a partir de MySQL 5.7.11. Posible error tipográfico o error en su punto de lanzamiento, tal vez? –

+1

Tienes razón, Aaron, SELECCIONA ahora() + INTERVALO 12 HORAS; está trabajando. Quizás la última vez algo estuvo mal con mi conexión DB o algo así. Probé hace un tiempo en 5.6 y 5.5. He borrado mi primer comentario para no confundir a los visitantes futuros. – efreed

1

si el desarrollador no desea actualizar los datos y quiere agregar horas o minutos a la vez. Se puede hacer de la siguiente manera:

El desarrollador puede usar una función AddTime() a add hours to time column in MySQL. Puede ser utilizado como el de abajo manera:

AddTime(COLUMN,’01:00:00′) to add an hour in MySQL time column 
AddTime(COLUMN,’00:01:00′) to add a minute in MySQL time column 

SQL consulta de ejemplo:

select id,name,AddTime(login_time,'01:00:00') as login_time FROM `table` 
Cuestiones relacionadas