Sie arbeiten mit einer MySQL-Abfrage, die eine Spalte „displaytime“ enthält das Zeitstempel in UTC speichert. Allerdings müssen Sie die Zeitstempel in der lokalen Zeitzone anzeigen. Die Funktion CONVERT_TZ() funktioniert nicht wie erwartet.
Um einen UTC-Zeitstempel mit der Funktion CONVERT_TZ() in eine lokale Zeitzone umzuwandeln, müssen Sie die Zeitzonenabkürzungen für beide angeben die UTC- und lokalen Zeitzonen. Die korrekte Syntax lautet wie folgt:
SELECT CONVERT_TZ(displaytime, 'UTC', 'LOCAL')
Beispielabfrage
WHERE displaytime >= '2012-12-01 00:00:00' AND displaytime <= '2013-02-22 23:59:59' AND ct.organizationId IN ( SELECT t.organizationId FROM organization_ AS t JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%') WHERE p.organizationId = 10707 )
Geänderte Abfrage:
WHERE CONVERT_TZ(displaytime, 'UTC', 'LOCAL') >= '2012-12-01 00:00:00' AND CONVERT_TZ(displaytime, 'UTC', 'LOCAL') <= '2013-02-22 23:59:59' AND ct.organizationId IN ( SELECT t.organizationId FROM organization_ AS t JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%') WHERE p.organizationId = 10707 )
Wenn CONVERT_TZ() nicht funktioniert, kann dies an fehlenden oder leeren Zeitzonentabellen liegen. Sie können die Zeitzonentabellen mit dem Programm mysql_tzinfo_to_sql initialisieren.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTC-Daten in die lokale Zeitzone in MySQL Select Query?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!