SQL Server 테이블에 DATETIMEOFFSET
열이있는 경우 결과를 UTC가 아닌 로컬 범위로 필터링하는 올바른 방법은 무엇입니까? "로컬"이라는 말은 날짜 경계가 하나의 고정 된 로컬 시간대를 기준으로하지 않고 저장된 값 (행마다 다를 수 있음)의 시간대와 관련이 있음을 의미합니다.DATETIMEOFFSET 열을 로컬 날짜 범위로 필터링
DATE
리터럴이 UTC로 가정되므로이 내용이 잘못되었다고 가정합니다. 옳은?
WHERE EventTime >= '20140401' AND EventTime < '20140501'
올바른 해결책이 있습니까?
WHERE CAST (EventTime AS DATE) >= '20140401' AND CAST (EventTime AS DATE) < '20140501'
또는 CAST 함수는 EventTime
열에서 효율적인 인덱스 사용을 방해합니까? 그렇다면 DATETIMEOFFSET 열과 같은 시간대에 날짜 리터럴을 "정렬"하는 올바른 방법은 무엇입니까?