単一の日時ではなく、それぞれ日付フィールドと整数フィールドに分割された日付/時刻の値を持つテーブルがあります。各行には日付と時間の固有の組み合わせがあるため、1 日あたり 24 行あります。
私の課題は、where ステートメントでこれらのタイムゾーンの調整を考慮する必要がある場合に、異なるタイムゾーンのユーザーに関連するデータを選択することです。たとえば、ユーザーがサーバー時間より 2 時間進んでいる場合、where ステートメントはそれを反映する必要があります。
...where concat(theDate,' ',theHour) > convert_tz(concat('2012-01-01',' ','00:00:00'), '-8:00', '-6:00')
..たとえば、PST から中央時間まで。しかし、もちろん、convert_tz や where 句で計算された値を使用することはできません。
不器用なDATE_ADDなどではなく、convert_tzを使用したいと思います。何ができるでしょうか?
たぶん私が間違っているので、where 句に convert_tz を含めることができます。核心的な問題は次のとおりです。
select *, convert_tz(concat(theDay,' ',theHour), '-8:00', '-8:00') 'dayTZ'
from stats
where convert_tz(concat(theDay,' ',theHour), '-8:00', '-8:00') > '2011-01-25 05:00:00';
上記はまだ 5 より前の時間の値を返します。