zoneinfoをインポートせずに、MySQLにタイムスタンプからフォーマットされた時刻を返す方法はないようです。
使用する場合
SET time_zone = '-4:00'
11月1日の午後6:00のタイムスタンプを作成します。夏時間が経過し、タイムゾーンが-5:00に変更されると、そのイベントは正しい時刻に表示されなくなります。
アプリケーションからタイムゾーンデータをロードすることは可能ですか?または、すべてのタイムスタンプをUNIXタイムスタンプとして取得し、アプリケーションで変換する必要がありますか?その場合、MySQLのタイムゾーンに関係なく、12:00AMの時刻がない日付を適切に並べ替えることができなくなります。
その最後のポイントを明確にするために、タイムスタンプがnullのときにタイムスタンプに変換される日付列があります。次のようになります。
select my_date, my_timestamp
from my_table
where if(my_timestamp, my_timestamp, timestamp(my_date))
コメントを明確にするために:これはタイムスタンプとして保存され、現地時間に変換されます。DSTの変更にまたがる複数のイベントを返すことができます。いつもPHPで変換してしまいましたが、PHP5.1以降が必要なので不便です。