Restar una hora a fecha en mysql

Pues estoy atascada en lo siguiente. Tengo una consulta a una BD:
$sql="SELECT id,archivo,DATE_FORMAT(fecha, '%d-%m-%Y %H:%i:%s') AS fechanueva FROM tabla";
Lo que pretendo es restarle una hora a la fecha y no sé cómo hacerlo, ya he probado en lo anterior poner "fecha-3600" en lugar de "fecha". Que me parece lo más fácil y lógico, pero no me funciona.

1 respuesta

Respuesta
1
Para eso debes usar la función SUBTIME
A subtime le indicas como primer parámetro la fecha, y como segundo (en formato fecha) cuanto le quieres quitar
Este ejemplo es para quitarle, 1 día 1 hora 1 min y 1.000002 segs a una fecha:
SELECT SUBTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
Si en vez de poner 1997-12-31 23:59:59.999999 pones la fecha de tu bd, te lo hará con esa fecha:
Esto quitaría (con tu sql) 3 horas a la fecha:
SELECT id,archivo,SUBTIME(DATE_FORMAT(fecha, '%d-%m-%Y %H:%i:%s'),"3:0:0") AS fechanueva FROM tabla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas