似乎没有办法让MySQL在没有导入zoneinfo的情况下从时间戳返回格式化的时间。
如果我使用
SET time_zone = '-4:00'
我在11月1日下午6点创建了一个时间戳,当夏令时过去了,时区变为-5:00时,该事件将不再在正确的时间显示。
是否可以从应用程序加载时区数据?或者我是否需要将所有时间戳作为UNIX时间戳并将其转换为应用程序?如果是这样,这将阻止我正确排序没有时间的日期,而不管MySQL的时区如何。
为了澄清最后一点,我有一个日期列,当时间戳为空时,该列被转换为时间戳。它看起来像:
select my_date, my_timestamp
from my_table
where if(my_timestamp, my_timestamp, timestamp(my_date))
澄清评论:它存储为时间戳并转换为本地时间。可以返回跨越DST更改的多个事件。我最终在PHP中转换所有时间,这很不方便,因为它需要PHP 5.1或更高版本。