datetimeフィールドの出力を変更して、その日付が属する曜日の最初の曜日を返すようにする必要があります。たとえば、日付が9/2/2016の場合、それはその週の月曜日(月曜日ではなく、日曜日であることが望ましいため)の8/29/2016を返します。しかし、タイムスタンプを別のタイムゾーンに変換する必要もあります。その結果、私は二回のタイムゾーンを変換する必要が終わるということです。単一のSELECT文で同じ値の計算を2回削除する
CONVERT_TZ(timestamp, '+00:00', '+05:00') - INTERVAL WEEKDAY(CONVERT_TZ(timestamp, '+00:00', '+05:00')) day
私は単にUTCの日時にINTERVAL
計算を実行して、タイムゾーンの変換が結果に影響を与える可能性があるため、結果にタイムゾーンを変換することはできません例えば、WEEKDAY
関数の2016-9-5 00:00 UTC
の日時は、実際にESTの9/4になるため、別の週の一部になります。
ステートメントでCONVERT_TZ
を2回コールする必要はありませんか?
確かに1つの方法ですが、これは現在のクエリよりもはるかにパフォーマンスが低いです。サブクエリをすでに使用している場合は、これが良いオプションになると思います。 – maxedison
ユーザー定義変数を使用して別の方法でこれを実行します。興味深いもの: – Barmar
あなたは実際にこれをお勧めしますか、私はちょうど私が持っているものに固執する必要がありますか? – maxedison