En un servidor, cuando ejecuto:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-05-30 16:54:29 |
+---------------------+
1 row in set (0.00 sec)
En otro servidor:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-05-30 20:01:43 |
+---------------------+
1 row in set (0.00 sec)
ntp
- y vea lo que es adecuado para usted!"Respuestas:
Pensé que esto podría ser útil:
Hay tres lugares donde se puede establecer la zona horaria en MySQL:
En el archivo "my.cnf" en la sección [mysqld]
@@ global.time_zone variable
Para ver a qué valor están configurados:
Para establecer un valor, use cualquiera de los dos:
(El uso de zonas horarias con nombre como 'Europa / Helsinki' significa que debe tener una tabla de zonas horarias debidamente poblada).
Tenga en cuenta que
+02:00
es un desplazamiento.Europe/Berlin
es una zona horaria (que tiene dos desplazamientos) yCEST
es una hora de reloj que corresponde a un desplazamiento específico.@@ session.time_zone variable
Para configurarlo, use cualquiera de los dos:
Ambos pueden devolver SYSTEM, lo que significa que usan la zona horaria establecida en my.cnf.
Para que los nombres de zonas horarias funcionen, debe configurar las tablas de información de zonas horarias que deben rellenarse: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . También menciono cómo llenar esas tablas en esta respuesta .
Para obtener el desplazamiento de la zona horaria actual como
TIME
Volverá a las 02:00:00 si su zona horaria es +2: 00.
Para obtener la marca de tiempo UNIX actual:
Para obtener la columna de marca de tiempo como una marca de tiempo UNIX
Para obtener una columna de fecha y hora UTC como marca de tiempo UNIX
Nota: Cambiar la zona horaria no cambiará la fecha y hora o la marca de tiempo almacenadas , pero mostrará una fecha y hora diferente para las columnas de marcas de tiempo existentes, ya que se almacenan internamente como marcas de tiempo UTC y se muestran externamente en la zona horaria MySQL actual.
Hice una hoja de trucos aquí: ¿MySQL debería tener su zona horaria establecida en UTC?
fuente
+00:00
no es una zona horaria, es un desplazamiento de tiempo. ¿Qué sucede con respecto al horario de verano? ¿Se queda en +0 todo el año?time_zone="+00:00"
la zona horaria usando un desplazamiento desde UTC, considerando que el valor establecido nunca cambia y que UTC no sigue el horario de verano, puedo suponer que permanece igual durante todo el año.+00:00
parece un desplazamiento, por lo que es un poco extraño que MySQL lo haya elegido para representar UTC en lugar de simplemente usar la cadena "UTC". Gracias por la info.C:\ProgramData\MySQL\MySQL Server x.x\my.ini
Para cualquiera que todavía tenga este problema:
Trabajó para mi. Solo agregue
?serverTimezone=UTC
al final.fuente
Asia/Ho_Chi_Minh
lugar deUTC
BTW, la pregunta es sobre cambiar la zona horaria de MySQL. Así que mira la respuesta de @Timo. Si tiene problemas con el acoplador MySQL, agregue el entorno TZ y debería funcionar.SET time_zone=...
Cuando puede configurar el servidor de zona horaria para MySQL o PHP:
Recuerda:
Cambiar el sistema de zona horaria. Ejemplo para Ubuntu:
Reinicie el servidor o puede reiniciar Apache 2 y MySQL:
fuente
Para configurarlo para la sesión actual, haga lo siguiente:
fuente
SET time_zone = 'America/Boise'
. Gracias por la respuesta, James Skidmore!SET time_zone = 'UTC';
configuración se pierde durante el reinicio del servidorSimplemente ejecute esto en su servidor MySQL:
Donde +8: 00 será su zona horaria.
fuente
@@session.time_zone
como se describe en otras respuestas es una ruta mucho mejor.Este trabajo para mí para una ubicación en India:
fuente
Puede especificar la zona horaria predeterminada del servidor cuando lo inicia, consulte http://dev.mysql.com/doc/refman/5.1/en/server-options.html y específicamente la
--default-time-zone=timezone
opción. Puede verificar las zonas horarias globales y de sesión conestablecer uno o ambos con la
SET
declaración, & c; consulte http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html para obtener más detalles.fuente
Tenga en cuenta que 'Country / Zone' no funciona a veces ... Este problema no depende del sistema operativo, la versión de MySQL y el hardware: lo he conocido desde FreeBSD 4 y Slackware Linux en el año 2003 hasta hoy. MySQL desde la versión 3 hasta la última fuente troncal. Es ODD, pero SÍ sucede. Por ejemplo:
Y se supone que una declaración como esa funciona:
Pero tienes este problema:
Eche un vistazo a la subcarpeta en el directorio de información de su zona y vea el nombre de archivo ACTUAL para el enlace simbólico, en este caso es EST5EDT. Entonces intente esta declaración en su lugar:
¡Y en realidad está funcionando como se supone que debe hacerlo! :) Ten en cuenta este truco; No he visto que esté documentado en los manuales de MySQL y en la documentación oficial. Pero leer la documentación correspondiente es algo que debe hacer: la documentación oficial de la zona horaria de MySQL 5.5 , y no olvide cargar los datos de la zona horaria en su servidor de esa manera (¡ejecute como usuario root!):
Truco número uno: debe hacerse exactamente bajo el usuario root de MySQL. Puede fallar o producir resultados que no funcionan incluso si el usuario tiene acceso completo a una base de datos MySQL. Yo mismo vi el problema.
fuente
Si estás usando PDO:
Si estás usando MySQLi:
Más sobre formatear el desplazamiento aquí: https://www.sitepoint.com/synchronize-php-mysql-timezone-configuration/
fuente
Esta es una pregunta de hace 10 años, pero de todos modos esto es lo que funcionó para mí. Estoy usando MySQL 8.0 con Hibernate 5 y SpringBoot 4.
He intentado la respuesta aceptada anteriormente pero no funcionó para mí, lo que funcionó para mí es esto:
Si esto te ayuda, no te olvides de votar: D
fuente
Antigua pregunta con una sugerencia más:
Si ha cambiado recientemente la zona horaria del sistema operativo, por ejemplo, a través de:
... MySQL (o MariaDB) no se dará cuenta hasta que reinicie el servicio db:
(o)
fuente
Si está utilizando MySql Workbench , puede configurarlo abriendo la vista de administrador y seleccionando la pestaña Avanzado. La sección superior es "Localización" y la primera casilla de verificación debe ser "zona horaria predeterminada". Marque esa casilla y luego ingrese su zona horaria deseada, reinicie el servidor y debería estar listo para comenzar.
fuente
Primero para averiguar cuál es la zona horaria, puede consultar
Su salida debe ser similar a la siguiente
Luego, si desea confirmar que se encuentra en una zona horaria como CDT en lugar de algo como EST, puede verificar a qué hora cree que está su máquina diciendo
Si no es el momento que desea, debe cambiarlo ... todo lo que necesita hacer es
SET time_zone = timezone_name
. Asegúrese de que sea uno que esté enContinent/City
formato.Si está en un servidor compartido porque tiene un servicio de alojamiento, consulte estas respuestas sobre cómo cambiar el archivo php.ini o el archivo .htaccess.
fuente
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p E
primero y luegoSET time_zone = timezone_name
funcionó bien.Debe configurar la zona horaria de su ubicación. Entonces, siga el siguiente proceso
Abra su MSQLWorkbench escriba un comando sql simple como este;
Y también tu url podría ser así;
fuente
Para establecer la zona horaria estándar en MariaDB , debe ir al archivo 50-server.cnf .
Luego puede ingresar la siguiente entrada en la sección mysqld.
Ejemplo:
El cambio debe hacerse a través del archivo de configuración, de lo contrario, el servidor MariaDB restablecerá las tablas mysql después de un reinicio.
fuente
Edite el archivo de configuración de MySQL
Desplácese y agréguelos al final. Cambiar a zona horaria relevante
Reiniciar el servidor
fuente
En Windows (IIS) para poder CONFIGURAR GLOBAL time_zone = 'Europe / Helsinki' (o lo que sea), las tablas de descripción de MySQL time_zone deben llenarse primero.
Los descargué de este enlace https://dev.mysql.com/downloads/timezones.html
Después de ejecutar la consulta SQL descargada, pude establecer el time_zone GLOBAL y resolver el problema que tenía donde SELECT NOW (); estaba regresando GMT en lugar de BST.
fuente
En mi caso, la solución fue establecer el parámetro serverTimezone en la Configuración avanzada en un valor apropiado (CET para mi zona horaria).
Como uso IntelliJ, uso su módulo de base de datos. Al agregar una nueva conexión a la base de datos y después de agregar todos los parámetros relevantes en la pestaña General, hubo un error en el botón "Probar conexión". Una vez más, la solución es establecer el parámetro serverTimezone en la pestaña Avanzado.
fuente
Si alguien usa GoDaddy Shared Hosting, puede intentar la siguiente solución, funcionó para mí.
Al iniciar la conexión DB, establezca el comando time_zone en mi objeto PDO, por ejemplo:
Donde "+05: 30" es la zona horaria de la India. Puede cambiarlo según su necesidad.
Después de esto; Todos los procesos de MySQL relacionados con la fecha y la hora se configuran con la zona horaria requerida.
Fuente: https://in.godaddy.com/community/cPanel-Hosting/How-to-change-TimeZone-for-MySqL/td-p/31861
fuente