我想知道是否有人能夠幫助我理解爲什麼這兩個條件不會返回相同的結果集。對我來說,似乎奇怪的是SQL Server 2008 R2在約束數據時不知道使用偏移量。有一個更好的方法嗎?據我所知,標準二是獲得正確數據的唯一方法。使用DateTimeOffset作爲SQL Server 2008查詢中的WHERE條件
-- 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')
但是,爲什麼我應該有切換偏移?它已經有一個與它相關的偏移量,所以在我看來,我只需要設置我傳遞它的標準的偏移量,剩下的就應該完成。在我看來,像SQL Server應該在執行查詢之前將所有內容切換到0偏移量。爲什麼我需要使用switchoffset將偏移量放入與其他偏移量相同的時區中。似乎多餘和不必要的。 – 2010-10-21 23:19:09