Кажется, что нет способа заставить MySQL возвращать отформатированные времена из меток времени без импорта zoneinfo.
Если я использую
SET time_zone = '-4:00'
и я создаю метку времени для 18:00 1 ноября, когда летнее время проходит, а часовой пояс меняется на -5: 00, это событие больше не будет отображаться в правильное время.
Можно ли загрузить данные часового пояса из приложения? Или мне нужно получить все свои метки времени как метки времени UNIX и преобразовать их в приложение? Если это так, это помешало бы мне правильно отсортировать даты, которые не имеют времени 12:00, независимо от часового пояса в MySQL.
Для пояснения этого последнего пункта у меня есть столбец даты, который преобразуется в метку времени, когда метка времени равна нулю. Это выглядит примерно так:
select my_date, my_timestamp
from my_table
where if(my_timestamp, my_timestamp, timestamp(my_date))
Чтобы уточнить комментарий: он сохраняется как метки времени и преобразуется в местное время. Могут быть возвращены несколько событий, которые охватывают изменение DST. В итоге я все время конвертировал в PHP, что неудобно, так как требует PHP 5.1 или выше.