mysql - cambiar - hora gmt actual
Consulta de MySQL para el tiempo GMT actual (10)
Esto suena bastante simple, pero no he podido averiguar cómo usar una simple instrucción SELECT para devolver la hora actual en GMT.
He estado tratando de usar CONVERT_TZ() para convertir NOW () a GMT según la zona horaria del servidor y la zona horaria GMT, pero por alguna razón devuelve NULL cuando coloco las zonas horarias de texto. La única forma de obtener un resultado es poner las compensaciones que se están complicando demasiado para lo que debería ser una operación realmente simple. Esto es lo que quiero decir:
mysql> SELECT CONVERT_TZ(NOW(),@@global.system_time_zone,''GMT'');
NULL
mysql> SELECT CONVERT_TZ(NOW(),''PST'',''GMT'');
NULL
mysql> SELECT CONVERT_TZ(NOW(),''-08:00'',''+00:00'');
2010-02-13 18:28:22
Todo lo que necesito es una consulta simple para devolver la hora actual en GMT. ¡Gracias de antemano por tu ayuda!
Cuando se desconoce la marca de tiempo del servidor de origen pero el requisito es para un tz específico, haga esto:
select convert_tz(utc_timestamp(),''+05:00'',''+00:00'')
Esto usa CST como ejemplo. utc_timestamp garantizará un resultado de ''+00: 00'' sin importar dónde lo consulte. El ''+05: 00'' es el desplazamiento deseado. Esto funciona muy bien cuando se llega a varios servidores desconocidos y le asegura que el resultado devuelto estará en un conjunto de resultados tz común.
Después de ver todas las respuestas anteriores y ver que no es confiable convertir a PST, simplemente usé esto:
DATE_SUB (user_last_login, INTERVAL 7 horas)
Estaba buscando mi zona horaria, que es GMT + 6 (Asia / Dhaka TimeZone)
El servidor MySQL está en Estados Unidos. Lo de abajo me funcionó.
SELECCIONAR CONVERTIR_TZ (UTC_TIMESTAMP (), ''+06: 00'', ''+00: 00'')
Esto debería funcionar SELECT date_add (UTC_TIMESTAMP (), intervalo 330 minutos);
Esto debería funcionar. Creo que está mal especificado su zona horaria. Usando Chicago como ejemplo
SELECT CONVERT_TZ(NOW(), ''America/Chicago'', ''GMT'')
La manera segura de obtener la fecha actual de UTC es:
SELECT CONVERT_TZ(NOW(), @@session.time_zone, ''+0:00'')
No hay ningún error en la función CONVERT_TZ. Obtienes NULL porque usas nombres de zonas horarias / abreviaturas. Mysql no sabe lo que significa este ''GMT'', ''PST'', etc., a menos que instale la tabla mysql.time_zone_name. Sin embargo, si usas números siempre funcionará.
mysql> SELECT CONVERT_TZ(NOW(), ''America/Chicago'', ''GMT'');
devuelve NULL
mysql> SELECT CONVERT_TZ(NOW(),''-08:00'',''+00:00'');
Devoluciones 2016-06-24 17:58:33
Nota: GMT puede tener DST UTC no tiene DST
SELECT UTC_TIMESTAMP();
Hice una hoja de trucos aquí: ¿Debería MySQL tener su zona horaria establecida en UTC?
Solo use UTC (no se ve afectado con el horario de verano)
SELECT UTC_TIMESTAMP();
Contenido antiguo para referencia:
esto debería funcionar, pero con
SELECT CONVERT_TZ(NOW(),''PST'',''GMT'');
También obtuve NULL como resultado. bastante gracioso el ejemplo en el docu mysql también devuelve nulo
SELECT CONVERT_TZ(''2004-01-01 12:00:00'',''GMT'',''MET'');
CONVERT_TZ() parece que ha encontrado un error en mysql . (gracias a + Stephen Pritchard)
tu podrías intentar:
SET @OLD_TIME_ZONE=@@TIME_ZONE;
SET TIME_ZONE=''+00:00'';
SELECT NOW();
SET TIME_ZONE=@OLD_TIME_ZONE;
ok no es exactamente lo que querías (sus 4 consultas, pero solo una selección :-)
NO BUG en CONVERT_TZ ()
Para usar CONVERT_TZ () necesita instalar las tablas de zona horaria, de lo contrario, MySql devuelve NULL.
Desde la CLI ejecuta lo siguiente como root
# mysql_tzinfo_to_sql / usr / share / zoneinfo | mysql -u raíz mysql
VER http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
Gracias
http://www.ArcanaVision.com (SJP 2011-08-18)