year timestampdiff timediff str_to_date month date_sub date_format date_add mysql timezone

timestampdiff - timediff mysql



Mysql FROM_UNIXTIME como UTC (3)

Como puedo conseguir

FROM_UNIXTIME

como UTC / GMT en mysql? La fecha se devuelve en la zona horaria de la conexión.

No quiero cambiar la zona horaria de la conexión.


Sé que esto ha sido respondido pero todavía me gustaría contribuir:

Si no desea que su servidor FROM_UNIXTIME() zona horaria UTC con funciones como NOW() y FROM_UNIXTIME() etc., debe configurar la time_zone como dijo @Matt Johnson.

Hay una cosa que no mencionó: SET time_zone = timezone; establece la zona horaria solo para la conexión actual. Use SET GLOBAL time_zone = ''+00:00'' si desea que estas funciones devuelvan / conviertan sus fechas en UTC de manera predeterminada, por lo que no tuvo que configurar la zona horaria cada vez que quiera guardar algunas fechas basadas en UTC.

Verifique la configuración actual de time_zone: SELECT @@global.time_zone, @@session.time_zone;

MySQL :: MySQL 5.5 Reference Manual :: 10.6 MySQL Server Time Zone Support


Sería mejor establecer la zona horaria antes de tiempo:

SET time_zone=''UTC''; select FROM_UNIXTIME(1277942400);

La razón es que las conversiones que involucran una zona horaria local pueden tener pérdidas. Aquí hay un ejemplo de esto en los documentos (consulte el cuarto párrafo en la sección UNIX_TIMESTAMP() que comienza con "Nota:")


mi solucion fue

SELECT CONVERT_TZ(FROM_UNIXTIME(1277942400), @@session.time_zone,''UTC'')

Si CONVERT_TZ devuelve un valor nulo, asegúrese de que la tabla de zona horaria de mysql esté llena:

zypper install mysql-community-server-tools mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql