Kann MySQL eine gespeicherte UTC-Zeit in eine lokale Zeitzone konvertieren?

Kann MySQL eine gespeicherte UTC-Zeit direkt in eine lokale Zeitzone umwandeln?

Angenommen, Sie haben einige Daten mit einem Zeitstempel (UTC).

CREATE TABLE `SomeDateTable` (
  `id`    int(11) NOT NULL auto_increment,
  `value` float NOT NULL default '0',
  `date`  datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
)

Dann wenn ich

"select value, date from SomeDateTable";

Ich bekomme natürlich alle Daten wie in ihrer gespeicherten UTC-Form.

Angenommen, ich möchte sie in einer anderen Zeitzone (mit Sommerzeit) haben. Kann ich dann der Auswahlabfrage etwas Magie hinzufügen, damit alle Daten in der ausgewählten Zeitzone wieder angezeigt werden?

"select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";

Oder muss ich das in einer anderen Ebene oben machen, wie in einem PHP-Code? (Es scheint, wie die meisten Leute dieses Problem gelöst haben).

Danke Johan

Wenn Sie mit Ihrer MySQL-Installation CONVERT_TZ verwenden können, ist dies eine sehr saubere Lösung. Dieses Beispiel zeigt, wie Sie sie verwenden.

SELECT CONVERT_TZ( '2010-01-01 12:00', 'UTC', 'Europe/Stockholm' )

Ich weiß jedoch nicht, ob dies ein guter Weg ist, da bei einigen MySQL-Installationen diese Funktion fehlt.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage