- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL TIMESTAMP型は、UTCですか?)
MySQL TIMESTAMP型はUTCか?ローカルタイムゾーンか?
このQ&Aのポイント
- MySQL5のTIMESTAMP型のカラムに格納されるのはUTCであり、データの読み出し時にタイムゾーンに変換されます。
- データはUTCで格納されますが、現在のタイムゾーンから変換され、カレントのタイムゾーンに表示されます。
- ただし、接続ごとに異なるタイムゾーンを設定することも可能です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>>内部的にUTCをPCのシステム設定を読み取って変換している >っていうのは、具体的に、どの時点で何をどうしているのでしょうか? WindowsでもLinuxでもOSの設定にタイムゾーン情報があります。mysqlサーバーがクライアントからの問い合わせがあった時点でUTCの時刻情報にタイムゾーン情報を加えてクライアントに返していると思います。 追記するとmyisamの16進ダンプですが、どうやらファイルヘッダーにファイル作成のエポック時を設けて、各レコードにはそれから経過秒数を記録しているようです。
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
> 実際にカラムの中を確認してみると、その時点の日本時間が格納されています。 これはどのように確認したのでしょうか。単純にSQLを実行しただけでは、mysqlが内部的にUTCをPCのシステム設定を読み取って変換しているか分かりません。 ストレージエンジンによるかどうかは分かりませんが、少なくともMyisamのテーブルデータのファイルを16進ダンプで見る限りではUTCでの1970年からの秒数(エポック時)を格納しているように見えるのですが。
質問者
補足
回答ありがとうございます。 >これはどのように確認したのでしょうか。 SQLを実行しただけです そもそも、基本的なことが分かっていないのですが、 >内部的にUTCをPCのシステム設定を読み取って変換している っていうのは、具体的に、どの時点で何をどうしているのでしょうか?
お礼
回答ありがとうございました。 大変参考になりましたー