Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/12/2011, 08:50
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: CURRENT_TIMESTAMP del server

Cita:
Lo que sucede es que toma como hora la hora del cliente y no del servidor.
En realidad, el PHP se ejecuta en el servidor, y la consulta en el servidor de MySQL, que se halla donde la dirección del host en la conexión se indique, por lo que la hora devuelta debería ser la del servidor, no la del cliente.
Lo que puede suceder es que ese dato esté volviendo con el ajuste de uso horario (TMZ) del cliente, por lo que se puede estar corrigiendo al mostrarlo.
De todos modos es un tema que los del Foro de PHP conocen mejor, por lo que te sugeriría que lo consultaras allí.
A nivel de la base, lo único que te podemos asegurar es que si la consulta se ejecuta en el servidor de MySQL, te devolverá la hora del servidor.

Esto lo ejecuté en servidor remoto (hosting en web):
Time

Código MySQL:
Ver original
  1. +---------------------+
  2. | Time                |
  3. +---------------------+
  4. | 2011-12-24 06:48:41 |
  5. +---------------------+
Y esto lo ejecuté en servidor local (Argentina):
Código MySQL:
Ver original
  1. +---------------------+
  2. | Time                |
  3. +---------------------+
  4. | 2011-12-24 11:56:06 |
  5. +---------------------+
  6. 1 row in set (0.00 sec)
Hubo alrededor de 25 segundos de diferencia entre ambas ejecuciones, pero como el servidor remoto se halla en la costa oeste de EE.UU. y nosotros en Argentina, hay un desfasaje de 5 horas.
En otras palabras, si estás enviando esa consutla a un hosting, la hora que devuelve es la del servidor. El problema es qué es lo que está interpretando la aplicación, es decir, si está corrigiendo la respuesta para acomodarla a la hora del cliente.

Por otro lado, trata de no usar palabras reservadas en los alias o nombres de objetos de la base, porque pueden generar errores de sintaxis difíciles de detectar. TIME es un tipo de dato, no debe usarse como alias ni como nombre.
Una buena costumbre es no usar denominaciones en inglés, que es donde más fácilmente se producen estos problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 24/12/2011 a las 09:05