Je me demandais si quelqu'un pouvait m'aider à comprendre pourquoi ces deux critères ne renvoyaient pas les mêmes ensembles de résultats. Pour moi, il semble étrange que SQL Server 2008 R2 ne sache pas utiliser le décalage tout en contraignant les données. Y a-t-il une meilleure manière de faire cela? Pour autant que je sache, le critère deux est le seul moyen d'obtenir les bonnes données.Utilisation de DateTimeOffset comme critère WHERE dans une requête SQL Server 2008
-- 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')
Mais pourquoi devrais-je changer le décalage? Il y a déjà une compensation qui y est liée, donc, à mon avis, je devrais seulement établir le décalage des critères que je suis en train d'adopter et il devrait faire le reste. Il me semble que SQL Server devrait tout changer à 0 offset avant d'exécuter la requête. Pourquoi aurais-je besoin d'utiliser switchoffset pour mettre le décalage dans le même fuseau horaire que mon autre décalage. Cela semble redondant et inutile. –