only - timestamp 10 mysql
¿Cómo obtener la marca de tiempo Unix en MySQL desde la hora UTC? (4)
Aquí hay un par de otras maneras de hacerlo:
SELECT UNIX_TIMESTAMP(myDate)+UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(UTC_TIMESTAMP())
FROM myTable
SELECT UNIX_TIMESTAMP(myDate)-TIMESTAMPDIFF(SECOND, NOW(), UTC_TIMESTAMP())
FROM myTable
Si hago unix_timestamp(some_date)
, convierte internamente some_date
a UTC, mientras que some_date
ya está en UTC. ¿Hay alguna manera de obtener la marca de tiempo actual de Unix?
Edición: Necesito la marca de tiempo Unix de la hora UTC.
Debería poder convertirlo de UTC a la zona horaria local usando CONVERT_TZ
:
UNIX_TIMESTAMP(CONVERT_TZ(some_date, ''+00:00'', @@global.time_zone))
Ver también: 10.6. Soporte de zona horaria del servidor MySQL
Esto funciona bien para mi:
UNIX_TIMESTAMP(CONVERT_TZ("some_date", ''+00:00'', ''SYSTEM''))
Puede obtener una marca de tiempo UNIX en MySQL a partir de un valor de fecha y hora UTC, como por ejemplo:
SELECT
UNIX_TIMESTAMP(CONVERT_TZ("some_date", ''+00:00'', @@session.time_zone))
FROM `table_name`
Hice una hoja de trucos aquí: ¿Debería MySQL tener su zona horaria establecida en UTC?