ホームページ >データベース >mysql チュートリアル >タイムゾーン変換の問題を回避するために、タイムゾーン情報を含む日時を MySQL に保存するにはどうすればよいですか?

タイムゾーン変換の問題を回避するために、タイムゾーン情報を含む日時を MySQL に保存するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-19 15:02:11121ブラウズ

How Can I Store Datetimes with Timezone Information in MySQL to Avoid Timezone Conversion Issues?

タイムゾーン情報を含む日時を MySQL に保存する: タイムゾーンの違いに対処する

質問:

方法サーバーがタイムゾーン情報とともに日時を MySQL データベースに保存できますか?タイムゾーンは保存されているデータのタイムゾーンと異なりますか?

ディスカッション:

タイムゾーン情報を含む日時を保存することは、実際の時刻を反映する正確なタイムスタンプを維持するために不可欠です。サーバーの場所やタイムゾーンに関係なく、イベントが発生しました。タンザニアで撮影され、米国のサーバーに保存されている写真など、異なるタイムゾーンのデータを扱う場合、タイムスタンプが正しいタイムゾーンで保存されていることを確認することが重要です。

回答:

日付時刻とタイムゾーン情報を MySQL に保存し、タイムゾーン変換の問題を防ぐには、次の手順に従います。手順:

  1. DATETIME タイプを使用します: UTC でタイムスタンプを保存する TIMESTAMP とは異なり、DATETIME は指定されたタイムゾーンでタイムスタンプを保持します。これにより、サーバーのタイムゾーンに関係なく、タンザニアのタイムスタンプがタンザニア時間で保存されるようになります。
  2. アプリケーション コードを調整する: データを保存する前に、データのタイムゾーンをアプリケーション コードで明示的に設定する必要があります。データベース内で。たとえば、タンザニアの日付時刻を DATETIME 列に挿入する場合は、INSERT ステートメントを実行する前にタイムスタンプをタンザニア時刻に変換する必要があります。

例:

INSERT INTO Images (TimestampJPG) VALUES (CONVERT_TZ('2011-03-13 02:49:10', '+00:00', '+03:00'));

追加考慮事項:

  • セッション時間の使用を避ける: セッションが適切に設定されていない場合、セッション時間に依存すると、タイムスタンプが不正確になる可能性があります。
  • タイムゾーン サポート ライブラリを使用する: 複雑なタイムゾーンを処理するには、タイムゾーンを提供する PHP または MySQL ライブラリの使用を検討してください。
  • グローバル分散のために UTC を考慮する: 保存されたデータがさまざまなタイムゾーンのユーザーによってアクセスされる場合、タイムスタンプを UTC に保存し、その場で変換して表示する方が良い可能性があります。ユーザーごとに正しく設定します。

以上がタイムゾーン変換の問題を回避するために、タイムゾーン情報を含む日時を MySQL に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。