2011-12-29 6 views
1

データベースのTIMESTAMP列全体をあるタイムゾーンから別のタイムゾーンに変換する方法についてのアイデアが必要です。MySQL時間を1つのタイムゾーンから別のタイムゾーンに変換する

現在のサーバはUTCですが、MySQLもUTCですので、その領域はすべて良好です。関連するすべての列はTIMESTAMPです。問題は、時間情報が入力されているときに、EST/EDTにあったことです。たとえば、開始時刻を入力します。data is 1/1/2011 08:00:00 AM(EST/EDT)。タイムゾーンは開始時に実装されていなかったため、データベースには08:00:00 UTCとして保存されました。したがって、データベースのすべてのデータはこのように格納されます。タイムゾーン情報が必要なデータを取得すると、このモデルは破損します。

問題は次のとおりです。これらのTIMESTAMP列をどのようにして正しいUTC時間に変換するのですか?コードは、ディスプレイ側でこれに対処するために変更されますが、歴史的なデータはどうですか?

最も単純な方法は、ある種のmysqldump --tz-utcを実行してからデータをインポートしてからコードをリリースするようです。しかし、これを適切に行う方法の良い例や、これを可能な限り効率的に行う他の方法があるとは思われません。

ありがとうございます!

答えて

2

MySQL AddTime関数を使用して既存のデータを更新できますか?

UPDATE MyTable SET MyTimeColumn = ADDTIME (MyTimeColumn, -8:00:00) WHERE <the data is bad> 
+0

これは夏時間を考慮しません。 –

関連する問題