America/New_York
のようなタイムゾーン文字列は、いわゆるzoneinfoデータベースのエントリを参照しています。これを読む。 https://www.iana.org/time-zones現在、インターネット割り当て番号機関によって管理されています。保守担当者は、夏時間のルールやその他の一時的な政治的な変更に追いつくためにスクランブルするので、多くの変更があります。
UNIX系システムでは、エントリはファイルシステムのディレクトリ階層に格納されており、コード番号ではありません。
あなたは尋ねた:
を、私は全体America/Los_Angeles
文字列
はいを保存してください。
ある種の整数IDがありますか?
いいえ、あなたのアプリケーションとデータベースを将来的なものにしたいのではないでしょうか。 zoneinfoデータを保持するMySQLの部分にはtime_zone_idがありますが、誰もそれらの番号を変更しないという約束をしていません。
現在の(2015g)データベースの最長文字列は "America/Argentina/ComodRivadavia"です。それは32文字です。この情報を保存するためにVARCHAR(64)
を使用すると理にかなっています。
ちなみに、WordPressは利用可能なタイムゾーン名の選択リスト(ドロップダウンリスト)をユーザーに提供し、ユーザーの選択肢をテキストとして保存します。
http://www.iana.org/time-zones
あなたが参照「あなたのタイムゾーンを維持するために、あなたのテーブルに新しい列」を記述してください。 – user1032531
データベースがあなたのdatetimeを変換する前の正確なタイムゾーンを知る必要がある場合は、それを保持する必要があります。データベースは自動的にサーバータイムゾーンでdatetimeを変換して保存するためです。 – Laurentiu
私はそれを格納するために 'VARCHAR(32)'を使うべきですか?それはすべてのタイムゾーンで十分な大きさですか?また、タイムゾーン用の整数IDがないことを確認してください。 – user1032531