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