これら 2 つの基準が同じ結果セットを返さない理由を誰かが理解するのを手伝ってくれるかどうか疑問に思っていました。私には、SQL Server 2008 R2 がデータを制約する際にオフセットを使用することを知らないというのは奇妙に思えます。これを行うより良い方法はありますか?私の知る限り、基準 2 が正しいデータを取得する唯一の方法です。
-- Criteria One
OriginationDateTimeOffset >= TODATETIMEOFFSET('2010-10-20', '-08:00') AND
OriginationDateTimeOffset < TODATETIMEOFFSET('2010-10-21', '-08:00')
-- Criteria Two
SWITCHOFFSET(OriginationDateTimeOffset, '-08:00') >= TODATETIMEOFFSET('2010-10-20', '-08:00') AND
SWITCHOFFSET(OriginationDateTimeOffset, '-08:00') < TODATETIMEOFFSET('2010-10-21', '-08:00')