Kann MySQL eine gespeicherte UTC-Zeit in lokale Zeitzone konvertieren: Zeit direkt in einer normalen Select-Anweisung?Kann MySQL eine gespeicherte UTC-Zeit in eine lokale Zeitzone umwandeln?
Nehmen wir an, 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 natürlich bekommen alle Termine als in ihrer gespeicherten UTC Form.
Aber sagen wir, dass ich sie in einer anderen Zeitzone haben möchte (mit DST), kann ich dann etwas hinzufügen, um alle Daten in der ausgewählten Zeitzone zurück zu bekommen?
Oder muss ich das in einer anderen Schicht oben tun, wie in einigen PHP-Code? (es scheint so zu sein, wie die meisten Leute dieses Problem gelöst haben).
Dank Johan
Wenn Ihre MySQL-Installation können Sie CONVERT_TZ es ist eine sehr saubere Lösung, dieses Beispiel zeigt, wie es zu benutzen.
SELECT CONVERT_TZ('2010-01-01 12:00', 'UTC', 'Europe/Stockholm')
Allerdings weiß ich nicht, ob dies ein guter Weg ist, da einige MySQL-Installation diese Funktion fehlt, verwenden Sie vorsichtig.
scheint der zu sein, richtige Sache, aber ich traf diesen Fehler direkt: http://bugs.mysql.com/bug.php?id=12445 Mein Server fehlte Zeitzonendaten ... – Johan
mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql – Johan