1

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以降が必要なので不便です。

4

0 に答える 0