MySQL, kayıtlı bir UTC saatini yerel saat dilimine dönüştürür: normal zaman ifadesinde doğrudan zamanlama süresi?MySQL, kayıtlı bir UTC saatini yerel saat dilimine dönüştürebilir mi?
Zaman çizelgesiyle (UTC) bazı verileriniz olduğunu varsayalım.
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`)
)
Sonra
"select value, date from SomeDateTable";
Ben tabii ki onların saklı UTC şeklinde olduğu tüm tarihleri olsun.
Ama başka bir saat diliminde (DST ile) sahip olmak istediğimi varsayalım, sonra seçili zaman dilimi içinde tüm tarihleri geri alabilmek için seçim sorgusuna bir büyü ekleyebilir miyim?
"select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";
Veya bunu başka bir katmanda, bazı php kodlarında olduğu gibi yapmalı mıyım? (çoğu insanın bu sorunu nasıl çözdüğü anlaşılıyor).
Teşekkür Johan
MySQL kurulum bunu bir çok temiz bir çözümdür CONVERT_TZ kullanmanıza izin veriyorsa
, bu örnek nasıl kullanılacağını gösterir.SELECT CONVERT_TZ('2010-01-01 12:00', 'UTC', 'Europe/Stockholm')
Ancak bu, bazı MySQL kurulum dikkatle kullanmak, bu işlevi eksik olduğu için iyi bir yol olup olmadığını bilmiyorum.
gibi görünüyor doğru şey ama bu hatayı vurdum doğrudan: http://bugs.mysql.com/bug.php?id=12445 sunucum zaman dilimi verileri eksikti ... – Johan
mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql – Johan