Если у меня есть столбец DATETIMEOFFSET
в таблице SQL Server, каким образом можно фильтровать результаты по целому ряду локальных (а не UTC) дат? Под «локальным» я подразумеваю, что границы дат относятся к часовому поясу каждого сохраненного значения (которое может различаться между строками), а не по отношению к одному фиксированному локальному часовому поясу., фильтруя столбец DATETIMEOFSFSET в локальный диапазон дат
Я предполагаю, что это не так, потому что литералы DATE
будут считаться UTC. Верный?
WHERE EventTime >= '20140401' AND EventTime < '20140501'
Итак, это правильное решение?
WHERE CAST (EventTime AS DATE) >= '20140401' AND CAST (EventTime AS DATE) < '20140501'
Или функция CAST предотвратить эффективное использование индексов на EventTime
колонке? Если да, то каков правильный способ «выровнять» литералы даты в тот же часовой пояс, что и столбец DATETIMEOFFSET?