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 работать должным образом? Спасибо!

0 ответов

Другие вопросы по тегам