• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL TIMESTAMP型は、UTCですか?)

MySQL TIMESTAMP型はUTCか?ローカルタイムゾーンか?

このQ&Aのポイント
  • MySQL5のTIMESTAMP型のカラムに格納されるのはUTCであり、データの読み出し時にタイムゾーンに変換されます。
  • データはUTCで格納されますが、現在のタイムゾーンから変換され、カレントのタイムゾーンに表示されます。
  • ただし、接続ごとに異なるタイムゾーンを設定することも可能です。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

>>内部的にUTCをPCのシステム設定を読み取って変換している >っていうのは、具体的に、どの時点で何をどうしているのでしょうか? WindowsでもLinuxでもOSの設定にタイムゾーン情報があります。mysqlサーバーがクライアントからの問い合わせがあった時点でUTCの時刻情報にタイムゾーン情報を加えてクライアントに返していると思います。 追記するとmyisamの16進ダンプですが、どうやらファイルヘッダーにファイル作成のエポック時を設けて、各レコードにはそれから経過秒数を記録しているようです。

re999
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

> 実際にカラムの中を確認してみると、その時点の日本時間が格納されています。 これはどのように確認したのでしょうか。単純にSQLを実行しただけでは、mysqlが内部的にUTCをPCのシステム設定を読み取って変換しているか分かりません。 ストレージエンジンによるかどうかは分かりませんが、少なくともMyisamのテーブルデータのファイルを16進ダンプで見る限りではUTCでの1970年からの秒数(エポック時)を格納しているように見えるのですが。

re999
質問者

補足

回答ありがとうございます。 >これはどのように確認したのでしょうか。 SQLを実行しただけです そもそも、基本的なことが分かっていないのですが、 >内部的にUTCをPCのシステム設定を読み取って変換している っていうのは、具体的に、どの時点で何をどうしているのでしょうか?

関連するQ&A