Обработка часовых поясов в MySQL без zoneinfo - PullRequest
1 голос
/ 10 ноября 2010

Кажется, что нет способа заставить 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 или выше.

...