2011-03-21 87 views
11

Tengo una instancia mySql de alojamiento compartido que tiene su system_time_zone configurado en Pacific Standard Time y su variable time_zone configurada en System, por lo tanto, efectivamente se está ejecutando en Pacific Standard Time.Configuración de la zona horaria predeterminada en MySql Server a través de PhPMyAdmin

es decir, me he encontrado el siguiente comando para averiguar esto:

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

me gustaría cambiar la base de datos por defecto de MySQL/MySQL local DB de zona horaria a la hora GMT/UTC. Traté de ejecutar, SET time_zone = '+0:00', y esto se ejecuta con éxito!

Sin embargo, esto no parece afectar la variable time_zone, cuando compruebo el estado de @@ time_zone. Miré en otra publicación que trata con el problema similar How to set MySQL to use GMT in Windows and Linux y también verifiqué el MySql documentation, con poco progreso. Como tengo una solución de alojamiento compartido, tengo acceso limitado y no tengo acceso a más de lo que ofrece mi funcionalidad PhPMyAdmin mySql.

Me pregunto si hay alguna manera de cambiar la zona de hora predeterminada dentro de una consulta SQL, o necesito recurrir a la línea de comandos (a la que no tengo acceso, desafortunadamente).

Gracias por su ayuda y asesoramiento,

Martin

+1

¿Has probado SET SESSION time_zone = '+0: 00' o SET GLOBAL time_zone = '+0: 00'? – dseibert

+0

gracias por la sugerencia 'cliente09', pero desafortunadamente me aparece "# 1227 - Acceso denegado, necesita el privilegio SUPER para esta operación", no suficientes privilegios en el alojamiento compartido. – sigi

Respuesta

2

Para el alojamiento compartido, que tienen que pedir ayuda-chicos a usted y cambio de zona horaria por defecto ayuda para usted? Tuve un problema similar con el proveedor de alojamiento Arcor, los llamé y lo arreglaron. Antes de eso, encontré solución temporal en date_default_timezone_set() del código PHP. Probablemente la mejor solución es pedirle a alguien que tenga el privilegio de cambiar ese parámetro.

+0

Creo que en mi situación de alojamiento compartido esto es probablemente lo más sensato. Los contacté y desafortunadamente rechazaron cambiar la zona horaria predeterminada para mí. Esto me pareció extraño, pero no lo seguí, ya que entonces decidí convertir todos mis tiempos a UTC en el lado del servidor y simplemente trabajar con UTC en su lugar, esto parece estar funcionando. – sigi

6

En resumen, MySQL en realidad almacena campos de tipo de datos 'datetime' internamente como UTC.

However, PhpMyAdmin le muestra las fechas usando el tiempo predeterminado del servidor, de ahí su confusión.

Por ejemplo, trate de añadir esta línea antes de la sentencia SQL en PhpMyAdmin:

SET @@session.time_zone='+00:00'; 
SELECT * FROM MY_TABLE 

Consulte la documentación MySQL para más detalles, o la respuesta en este post: How to correctly set mysql timezone

Saludos Matt

-1
<?php 
date_default_timezone_set('UTC'); //define local time 

$date=date('l jS \of F Y h:i:s A'); //type of time shown 

$conn=mysql_connect("localhost","root","") or die('Could not connect!'); //your database connection here 

$db_selected = mysql_select_db('databasename', $conn); //select db 

$result=mysql_query("INSERT INTO table (date) VALUES ('$date')", $conn); 
?> 

Simplemente envió el tiempo como VARCHAR a db Espero que ayude y lo siento por sy Errores ntax (si hay alguno).

Cuestiones relacionadas