Requête MySQL pour le courant de l'heure GMT
Cela semble assez simple, mais je n'ai pas été en mesure de comprendre comment utiliser une simple instruction SELECT pour retourner à l'heure actuelle dans l'heure GMT.
J'ai essayé d'utiliser CONVERT_TZ() à convertir() à GMT basée sur le fuseau horaire du serveur et le fuseau horaire GMT, mais pour quelque raison il retourne NULL quand je l'ai mis dans le texte de fuseaux horaires. Le seul moyen pour moi d'obtenir un résultat est à mettre dans les décalages qui devient trop compliqué pour ce que devrait être une opération simple. Voici ce que je veux dire:
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
À tous j'ai besoin est d'une simple requête pour renvoyer l'heure actuelle dans l'heure GMT. Merci d'avance pour votre aide!
- Remarque: l'Utilisation de temps UTC, si vous avez besoin d'un temps universel de référence. C'est une vraie référence, et non à l'heure GMT. Les derniers changements lorsque l'heure d'été est activée.
- Merci pour la suggestion! La question est toujours debout. Alors, comment puis-je utiliser une instruction select simple pour obtenir de l'heure UTC actuelle?
Vous devez vous connecter pour publier un commentaire.
Juste utiliser UTC (il ne marche pas obtenir touchés avec l'heure avancée)
De l'ancien Contenu de référence:
cela devrait fonctionner, mais avec
je me suis aussi NULLE en tant que résultat. c'est marrant, l'exemple de la base de données mysql docu également retourne null
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz
semble que vous avez trouvé un bug dans mysql. (merci à +Stephen Pritchard)vous pourriez essayer:
ok n'est pas exactement ce que tu voulais (4 requêtes, mais un seul select 🙂
UTC_TIMESTAMP()
, c'est donc une bonne idée de déplacer votre dernière ligne vers le haut de la réponse.PAS de BUG dans CONVERT_TZ()
À utiliser CONVERT_TZ() vous devez installer le fuseau horaire tables sinon, MySql retourne NULL.
De la CLI exécuter les opérations suivantes en tant que root
VOIR http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
Grâce
http://www.ArcanaVision.com (SJP 2011-08-18)
convert_tz()
renvoie la valeur NULL, même après la mise à jour de fuseau horaire. étrange! et j'ai vérifié - timezone_xxx tables sont pleines. ma version du serveur est 5.0.92, compilé à partir des sources (comme je le fais toujours). Jamais eu ce problème avant...PST
fuseau horaire n'existe pas encore. J'ai lu dans wikipédia et Il semble que la PST n'est pas assez clair pour la définition d'un fuseau horaire à cause de l'heure d'été. Certaines des villes utilisation de l'heure d'été certains ne le font pas. Voir: en.wikipedia.org/wiki/Pacific_Time_Zone#Daylight_time . J'ai utilisé du Pacifique/Los_Angeles plutôt que de PST (pour prendre de l'heure d'été dans le compte).Note:
GMT pourrait avoir d'heure d'été
UTC est pas l'heure d'été
J'ai fait une triche ici: Devrait MySQL avoir son fuseau horaire défini à l'UTC?
Le moyen infaillible pour aller chercher de l'heure UTC datetime est:
Après avoir vu toutes les réponses ci-dessus et de voir que c'est pas fiable pour convertir PST, j'ai juste utilisé ce:
Ce travail - je pense que vous avez spécifié le fuseau horaire de mal. À l'aide de Chicago comme exemple
Lorsque le serveur source d'horodatage est inconnue, mais l'exigence est spécifique à un tz ce faire:
Il utilise CST comme un exemple.
utc_timestamp sera la garantie d'une '+00:00 " résultat, peu importe où vous interroger.
Le "+05:00' est votre décalage souhaité.
Cela fonctionne très bien lors de la frappe de plusieurs serveurs inconnus et il vous assure que vous retournant résultat seront tous d'un commun tz jeu de résultats.
J'étais à la recherche de mon fuseau horaire GMT+6 (Asia/Dhaka Fuseau horaire)
Serveur MySQL est en NOUS. Ci-dessous travaillé pour moi.
SÉLECTIONNEZ CONVERT_TZ( UTC_TIMESTAMP( ) , '+06:00', '+00:00' )
Il n'y a pas de bug dans CONVERT_TZ fonction. Vous obtenez NULL parce que vous utilisez des fuseaux horaires noms et abréviations. Mysql ne sait pas ce que cette 'EME','PST", etc signifie que si vous installez mysql.time_zone_name table. Toutefois, si vous utilisez des numéros de il le sera toujours.
retourne NULL
retourne 2016-06-24 17:58:33