from_unixtime() con timestamps negativos

La función FROM_UNIXTIME() de MySQL es la que nos permite convertir fechas almacenadas como TIMESTAMP a formato DATE.

Pero a la hora de usarla hay que tener en cuenta una limitación importante de esta, y es que esta función no acepta timestamps negativos, es decir, representaciones de fechas inferiores al año 1970. Por lo que si hacemos esto, nos devolverá NULL:

Una solución para los casos en que las fechas pueden ser timestamps negativos, es obtener la fecha no usando directamente la FROM_UNIXTIME(), si no con la función DATE_ADD(), sumando al timestamp 0, el intervalo de segundos que coincide con nuestro timestamp. De esa forma, tanto si el timestamp es positivo como si es negativo, obtendremos siempre la fecha correctamente:

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *