質問 1: 夏時間に関する考慮事項
はい、その通りです。タイムゾーン名 (「US/Eastern」など) を指定すると、CONVERT_TZ() は夏時間を考慮します。 CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN') を呼び出すと、1 月に '19:00:00' が返され、東部標準時が UTC から 5 時間遅れていることが認識されます。夏時間中は、東部時間が 1 時間進むため、結果は「20:00:00」になります。
質問 2: タイム ゾーン テーブルの更新
の場合タイム ゾーン名のみに依存するため、オフセットを最新の状態に保つためにタイム ゾーン テーブルを常に更新する必要はありません。 CONVERT_TZ() は、現在のタイム ゾーン設定と夏時間ルールを考慮します。
質問 3: NULL 戻り値のトラブルシューティング
サンプル クエリでの NULL 戻り値 (CONVERT_TZ(' 2004-01-01 12:00:00','GMT','MET')) は、タイム ゾーン テーブルが欠落していることが原因である可能性があります。これを確認するには、次のクエリを実行します。
SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');
これでも NULL が返された場合は、タイム ゾーン テーブルが正しく設定されていないことを示します。
追加のヒント
時間を直接加算または減算する代わりに、MySQL の INTERVAL キーワードを使用して時間計算を処理できます。たとえば、
now() - interval 1 day + interval 4 hour
以上がMySQL の CONVERT_TZ() 関数はタイムゾーンと夏時間をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。