2010-02-18 17 views
6

O estoy siendo estúpido o algo está mal aquí.¿Cómo puede SELECCIONAR UTC_TIMESTAMP() devolver -10: 00 UTC?

Tengo dos servidores SQL Server, el que está en mi máquina local (hora local GMT) y el otro es en otro lugar (NOW() parece volver 8 GMT) y acceder a ella a través de phpMyAdmin. Tengo una tabla que tiene una columna DATETIME. Estoy intentando

para almacenar la corriente GMT/UTC tiempo y luego volver a mostrarla, siendo tan hora GMT/UTC.

Originalmente almacené DATE_SUB(NOW(), INTERVAL 8 HOUR) que funcionó bien. Sin embargo, luego leí sobre UTC_TIMESTAMP() y gustó más, ya que era más corto y el MySQL manual incluso dijo:

"La configuración de zona horaria actual no afecta a los valores mostrados por funciones como UTC_TIMESTAMP() o de valores de FECHAS DE DATE, TIME o DATETIME ".

So perfect right? Excepto no.

Supongamos que el actual GMT es 2010-02-18 17:18:17 (incluso lo comprobé con alguien en Gran Bretaña).

En mi local (2) servidor, consigo los siguientes resultados para las siguientes consultas:

SELECT NOW(); 2010-02-18 19:18:17 

SELECT UTC_TIMESTAMP(); 2010-02-18 17:18:17 

En mi servidor en línea me sale:

SELECT NOW(); 2010-02-19 01:18:17 

SELECT UTC_TIMESTAMP(); 2010-02-19 07:18:17 (WHY?!) 

I Am ¡¿Echando de menos algo?!

+0

sufro con el mismo problema. – diEcho

Respuesta

10

Probablemente porque el reloj está mal en el servidor en línea?

vuelva a emitir este:

SELECT @@system_time_zone, NOW(), UTC_TIMESTAMP() 

y ver qué zona tiene que volver y no se corresponde con la diferencia.

+0

@@ system_time_zone \t NOW() \t UTC_TIMESTAMP() CST \t 2010-02-19 01:35:30 \t 2010-02-19 07:35:30 Por lo tanto, si yo soy la comprensión de este derecho, el servidor dice que es CST (-6) y está configurado a 1:35 a.m., así que SQL está diciendo bien y luego agrega 6 para llegar a UTC ... BAH! Que frustrante. Gracias por aclararlo, pensé que estaba haciendo algo mal que me estaba volviendo loco. – Alex

+0

¿Por qué es eso frustrante? AHORA() es la hora actual después de que la zona horaria surta efecto, por lo que las funciones están haciendo su trabajo perfectamente ¿no? – deed02392

+0

@Alex Creo que la lógica/explicación de MySQL tiene mucho sentido, por cierto, ¿cuál no era correcta según su zona horaria, es decir, su servidor local o servidor en línea? – sactiw

Cuestiones relacionadas