いくつかのロジックをphpコードからmysqlクエリに移動したかったのですが、これには常にUTCを参照する必要がある日時の計算が含まれていました。
私が関数で使用しているphpにはini_set('date.timezone', 'UTC');
、一貫性を保証するためのものが含まれています。
システムのタイムゾーンを常に制御できるとは限らないため、接続ごとにタイムゾーンを設定しましたSET time_zone = 'UTC';
。これにより、MySQLクエリ内で派生日付が使用される場所はすべてUTCになります。
ただし、ドキュメントからも、TJ Crowderによる同様の質問に対する優れた回答からも、これが影響を与えるかどうかはわかりません。
ADDDATE() ADDTIME() or DATE_ADD()
つまり、これらはセッションのタイムゾーンに基づいて夏時間を考慮に入れるか、またはこれらのアカウントを夏時間に関係なく行います。
CONVERT_TZ(dt,from_tz,to_tz)
後者の場合-MySQLシステムテーブルからfrom_tzを導出する場所を使用して、たとえばADDTIME()計算の結果をキャストすることは可能ですか。
注:-@@global.time_zone, @@session.time_zone return 'SYSTEM'
タイムゾーンが設定されていない場合は、変換に使用できないことがわかっています。