Si j'ai une colonne DATETIMEOFFSET
dans une table SQL Server, quel est le bon moyen de filtrer les résultats à une plage de dates locales (pas UTC)? Par "local", je veux dire que les limites de date sont relatives au fuseau horaire de chaque valeur stockée (qui peut différer entre les lignes), et non pas à un seul fuseau horaire local fixe. Je suppose que ce n'est pas cela, parce que les littéraux DATE
seront supposés être UTC. Correct?Filtrage d'une colonne DATETIMEOFFSET dans une plage de dates locale
WHERE EventTime >= '20140401' AND EventTime < '20140501'
Alors, est-ce la bonne solution?
WHERE CAST (EventTime AS DATE) >= '20140401' AND CAST (EventTime AS DATE) < '20140501'
Ou la fonction de prévention CAST utilisation efficace des indices sur la colonne EventTime
? Si oui, quelle est la bonne façon d '"aligner" les littéraux de date sur le même fuseau horaire que la colonne DATETIMEOFFSET?