我在UTC中存储UTC日期时间值。我使用CONVERT_TZ来处理时区转换,以便在数据库中查询/保存UTC /从本地日期时间。为什么MySQL CONVERT_TZ改变时区调整后的秒数?
经过测试,我注意到转换工作原理中的这个奇怪的特点。任何人都可以解释为什么MySQL使用-4:00小时偏移量时添加了23秒,但是在使用等效时区标签时不能使用?
select convert_tz('2009-06-12 01:00:00', 'UTC', '-4:00')
2009-06-11 21:00:23
select convert_tz('2009-06-12 01:00:00', 'UTC', 'US/Eastern')
2009-06-11 21:00:00
我在Windows XP笔记本电脑上针对MySQL 5.0.67-community-nt-log运行。我从本地托管的phpMyAdmin 3.1.5运行查询,我可以在PHP 5.2.8中的我自己的应用程序中看到它。
与我的Dreamhost帐户相比,这两个查询返回适当的日期时间('2009-09-06 21:00:00')。他们在Linux和PHP 5.2.6上运行MySQL 5.0.45-log。
为什么我自己安装的MySQL有这种差异?