ホームページ > データベース > mysql チュートリアル > MySQL は夏時間への移行中にあいまいな日付時刻をどのように処理できますか?

MySQL は夏時間への移行中にあいまいな日付時刻をどのように処理できますか?

Mary-Kate Olsen
リリース: 2024-12-25 20:29:09
オリジナル
713 人が閲覧しました

How Can MySQL Handle Ambiguous Datetimes During Daylight Saving Time Transitions?

MySQL の夏時間による曖昧な日時の処理

夏時間 (DST) が発生すると、曖昧な時間が発生するため、それが困難になります目的の時間基準を決定します。たとえば、アメリカ/ニューヨークのタイムゾーンでは、秋の移行期間中に午前 1 時 30 分が 2 回発生する可能性があります。

問題:

MySQL の DATETIME フィールドと TIMESTAMP フィールドは一意です。この曖昧な時代に対処する上での課題。 DATETIME フィールドには、タイム ゾーンや DST 変換を考慮せずに、日付と時刻がそのまま格納されます。 TIMESTAMP フィールドは、入力タイムスタンプを UTC に変換し、その逆も同様です。

解決策:

1. DATETIME フィールドを使用する:

タイムスタンプを DATETIME フィールドに保存する前に UTC に変換します。これにより、保存する正確な UTC 時間を確実に制御できるようになります。

2.取得したデータの解釈:

DATETIME フィールドから取得したタイムスタンプを MySQL の外部の UTC タイムスタンプとして解釈します。これにより、MySQL の日付/時刻関数によって生じる曖昧さが防止されます。

3. TIMESTAMP フィールドを避ける:

DST が関係する場合、現地時間と UTC 間の変換に矛盾が生じる可能性があるため、TIMESTAMP フィールドの使用は避けてください。

実装:

取得中データ:

// Example using PHP's DateTime class
$timestamp = strtotime($db_timestamp . ' UTC');
ログイン後にコピー

データの保存:

// Example using PHP's DateTime class
$UTCDateTime = new DateTime('2009-11-01 1:30:00 EST');
$db_timestamp = $UTCDateTime->format('Y-m-d H:i:s');
ログイン後にコピー

考慮事項:

  • MySQLデータを DST に保存する場合、日付/時刻関数は DST 境界を確実に処理できませんtimezones.
  • MySQL によって無視される DATETIME フィールドのオフセットを指定します。

以上がMySQL は夏時間への移行中にあいまいな日付時刻をどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート