it-swarm.com.de

MySQL-Abfrage zur aktuellen GMT-Zeit

Das klingt einfach genug, aber ich konnte nicht herausfinden, wie ich mit einer einfachen SELECT-Anweisung die aktuelle Uhrzeit in GMT zurückgeben kann.

Ich habe versucht, CONVERT_TZ () zu verwenden, um JETZT () in GMT basierend auf der Serverzeitzone und der GMT-Zeitzone umzuwandeln, aber aus irgendeinem Grund gibt es NULL zurück, wenn ich die Textzeitzonen eingebe. Die einzige Möglichkeit, ein Ergebnis zu erzielen, besteht darin, die Offsets tatsächlich einzugeben, was für eine wirklich einfache Operation viel zu kompliziert wird. Hier meine ich:

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

Alles, was ich brauche, ist eine einfache Abfrage, um die aktuelle Uhrzeit in GMT zurückzugeben. Vielen Dank im Voraus für Ihre Hilfe!

25
Russell C.

Verwenden Sie einfach UTC (wirkt sich nicht auf Sommerzeit aus)

SELECT UTC_TIMESTAMP();

Alter Inhalt als Referenz:

das sollte funktionieren, aber mit

SELECT CONVERT_TZ(NOW(),'PST','GMT');

ich habe auch NULL als Ergebnis. Komischerweise gibt das Beispiel in der MySQL-Dokumentation auch null zurück

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html#function_convert-tzsie haben anscheinend einen Fehler in MySQL gefunden. (Danke an + Stephen Pritchard)

du könntest es versuchen:

SET @[email protected]@TIME_ZONE;
SET TIME_ZONE='+00:00';
SELECT NOW();
SET [email protected]_TIME_ZONE;

ok ist nicht genau das was du wolltest (seine 4 Fragen, aber nur eine auswählen :-)

36
Rufinus

NO BUG in CONVERT_TZ ()

Um CONVERT_TZ () zu verwenden, müssen Sie die Zeitzonentabellen installieren, andernfalls gibt MySql NULL zurück.

Führen Sie in der CLI Folgendes als root aus

# mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql

SEE http://dev.mysql.com/doc/refman/5.5/de/time-zone-support.html

Vielen Dank

http://www.ArcanaVision.com (SJP 2011-08-18)

13

Hinweis: GMT verfügt möglicherweise über DST UTC verfügt nicht über DST

SELECT UTC_TIMESTAMP();

Ich habe hier ein Cheatsheet erstellt: Sollte die Zeitzone von MySQL auf UTC eingestellt sein?

12
Timo Huovinen

Die todsichere Methode zum Abrufen der aktuellen UTC-Zeit ist:

SELECT CONVERT_TZ(NOW(), @@session.time_zone, '+0:00')
4
FrankerZ

Wenn der Zeitstempel des Quellservers unbekannt ist, die Anforderung jedoch für ein bestimmtes tz gilt, führen Sie folgende Schritte aus:

select convert_tz(utc_timestamp(),'+05:00','+00:00')

Hier wird CST als Beispiel verwendet Utc_timestamp garantiert ein '+00: 00' - Ergebnis, egal wo Sie es abfragen Das '+05: 00' ist Ihr gewünschter Offset Wenn Sie mehrere unbekannte Server treffen, wird sichergestellt, dass Sie das Ergebnis zurückgeben, das alle in einer gemeinsamen Ergebnismenge von tz enthalten ist.

0
Mark

Das sollte funktionierenSELECT date_add (UTC_TIMESTAMP (), Intervall 330 Minuten);

0

Das sollte funktionieren - ich denke, Sie haben Ihre Zeitzone falsch angegeben. Chicago als Beispiel verwenden

SELECT CONVERT_TZ(NOW(), 'America/Chicago', 'GMT')
0
konung

Ich habe nach meiner Zeitzone gesucht, GMT + 6 (Asia/Dhaka TimeZone).

Der MySQL-Server befindet sich in den USA. Das Folgende arbeitete für mich.

SELECT CONVERT_TZ (UTC_TIMESTAMP (), '+06: 00', '+00: 00')

Nachdem ich alle Antworten oben gesehen und festgestellt hatte, dass es unzuverlässig ist, in PST zu konvertieren, habe ich einfach Folgendes verwendet:

DATE_SUB (user_last_login, INTERVAL 7 Stunden)

0
Mauvis Ledford