1

mysql サーバーを共有ホスティングからローカル サーバーに移行したいと考えています。

現在のサーバーは MST タイム ゾーンにあり、databsse の CURRENT_TIMESTAMP の値は -7:00 GMT として保存されます。

今、私は完全なアプリケーションをインドの専用サーバーに移動したいと考えています。また、-7:00 GMT に保存されている日付値を +5:30 GMT に変換したいと考えています。

時刻を更新するスクリプトを作成することで日付を更新するこのタスクを達成できますが、データベース自体からこれを行う方法があるかどうかを知りたいです (インポート時またはエクスポート中に)

mysql バージョン 5.0.96-ログ。オプションのエクスポート タイムスタンプが UTC で取得されません。

4

2 に答える 2

3

mysqldump を使用する場合、フラグ --tz-utc を設定して、すべてのタイムスタンプを強制的に UTC としてエクスポートします。( http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_tz-utc )。--tz-utc はデフォルトで有効になっていることに注意してください。したがって、何もする必要はありません:しかし、最初にテストしてください:)

サーバーでタイムスタンプを操作するだけの場合は、タイムスタンプのドキュメントから MySQL 4.1 ( http://dev.mysql.com/doc/refman/4.1/en/timestamp.html ):

「値は引き続き UTC で保存されますが、保存のために現在のタイム ゾーンから変換され、取得のために現在のタイム ゾーンに戻されます。タイム ゾーンの設定が一定である限り、保存した値と同じ値が返されます。 TIMESTAMP 値を保存してから、タイム ゾーンを変更して値を取得すると、取得した値は保存した値とは異なります。」

これは簡単にテストできます。

  1. タイムスタンプをテーブルに保存する
  2. サーバーのタイムゾーンを変更する
  3. 取得: 戻り値は新しいタイムゾーンを反映する必要があります。

別のオプションは、エクスポート/インポートの実行中に両方のサーバーを同じタイムゾーンに設定し、完了後に正しいタイムゾーンに戻すこともできますが、MySQLDump ではこれは必要ないことに注意してください。

于 2013-02-06T15:41:25.787 に答える
-3

一般的な構文

SELECT DATE_ADD(<column_name>, INTERVAL HOUR);

UTC から MST への変更用

SELECT DATE_ADD(NOW(), INTERVAL 7 HOUR);
于 2014-02-14T22:30:45.317 に答える