1

タイムスタンプ データ型についていくつか質問があります。タイムスタンプを使用すると日時がUTCで保存されることを正しく理解しましたか? データを取得すると、現地時間で表示されますか?

もしそうなら、この「機能」を有効にするために私がしなければならない設定はありますか?

4

3 に答える 3

0

デフォルトでは、TIMESTAMPはデータをUTCで保存してから、データベースが存在するサーバーのタイムゾーンに変換し直します。ここで同様の質問に対するいくつかの良い回答があります:フィールド「datetime」または「timestamp」を使用する必要がありますか?

于 2012-11-01T21:44:02.997 に答える
0

それはすべてマニュアルにあります。

MySQLは、TIMESTAMP値を現在のタイムゾーンからUTCに変換して保存し、UTCから現在のタイムゾーンに変換して取得します。(これは、DATETIMEなどの他のタイプでは発生しません。)

To explicitly cast a time value to a specific timezone, use convert_tz()

The current time zone is part of the session - which it inherits from the MySQL global timezone, which is inherited from the system time zone.

于 2012-11-01T21:46:15.820 に答える
0

タイムスタンプは、途中で日付と時刻の文字列表現に変換されます。結果セットに表示されるものには、MySQL サーバーのタイムゾーン設定が使用されます。

タイムスタンプは、EPOCH ('1970-01-01 00:00:00' UTC) からの秒数として内部的に保存されます。

そのため、多くの人が DB を UTC に設定することを好みます。そうすることで、常に UTC の日時を取得し、コード側で現地時間に変換できます。

MySQL データベースのタイムゾーンは、サーバーのシステム設定にフォールバックする可能性のある内部構成設定を使用します。

MySQL タイムゾーン設定の構成方法については、http: //dev.mysql.com/doc/refman/5.5/en/time-zone-support.htmlを参照してください。

于 2012-11-01T21:39:46.463 に答える