MySQL の現在のタイム ゾーン設定の取得
MySQL サーバーのタイム ゾーン設定の決定は、ユーザーの間で混乱を引き起こしました。初期の想定に反して、@@global.time_zone 変数と @@session.time_zone 変数はタイム ゾーンとして "SYSTEM" を返すことがよくあります。ただし、MySQL がシステムのタイム ゾーンを利用するように構成されている場合、この応答ではほとんど洞察が得られません。
タイム ゾーン情報の取得
MySQL マニュアルによると、次のとおりです。コマンドを使用して、現在のグローバル時刻とクライアント固有の時刻を取得できます。ゾーン:
mysql> SELECT @@global.time_zone, @@session.time_zone;
「SYSTEM」応答の処理
MySQL がタイム ゾーンとして「SYSTEM」を返す場合、PHP 開発者は、MySQL が使用する実際のタイム ゾーンを取得できます。システムは date_default_timezone_get を使用します。ただし、PHP は MySQL データベースとは異なるサーバーで実行される可能性があるため、この仮定が常に当てはまるとは限らないことに注意することが重要です。
保存された日付と時刻の値についての考慮事項
MySQL の日付と時刻の値にはタイムゾーン情報が含まれていないことを覚えておくことが重要です。したがって、サーバーのタイムゾーン設定は、now() や unix_timestamp() など、現在時刻を取得する関数にのみ影響します。データベース内の既存データの保存や解釈には影響しません。
タイムゾーン情報の保存の重要性
日付と時刻のデータを正確に処理するには、値を GMT (夏時間は適用されません) で保存し、必要に応じて目的のタイム ゾーンに変換することをお勧めします。このアプローチにより、サーバー構成または夏時間の移行によって生じる潜在的な曖昧さが排除されます。
以上が@@global.time_zone が「SYSTEM」を返した場合、MySQL の実際のタイムゾーン設定を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。