SQL: переполнение datetime2 в WHERE, но не в SELECT
Я видел множество тем о переполнении datetime2 при достижении минимальной даты, но в моих данных этого нет. Кроме того, DATEADD
прекрасно работает в SELECT
заявление, но не в WHERE
заявление. Вот что я пытаюсь сделать:
SELECT DATEADD(hour, -8, MyDate) as 'PST Date'
FROM [dbo].[MyTable]
WHERE DATEADD(hour, -8, MyDate) between '2017-01-01' and '2017-02-01'
Который разрешает:
Adding a value to a 'datetime2' column caused an overflow.
Этот запрос работает нормально, если я выну DATEADD
от WHERE
заявление, но затем я получаю 8-часовой сдвиг в моих результатах. Любая идея, почему это происходит или что я могу сделать, чтобы WHERE
работать должным образом? Спасибо!