Mysql SQL:datetime2在WHERE中溢出,但在SELECT中未溢出

Mysql SQL:datetime2在WHERE中溢出,但在SELECT中未溢出,mysql,overflow,where,dateadd,datetime2,Mysql,Overflow,Where,Dateadd,Datetime2,我见过很多关于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 t

我见过很多关于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.

如果我从
WHERE
语句中取出
DATEADD
,这个查询就可以正常工作了,但是我得到的结果是8小时轮班。你知道为什么会发生这种情况,或者我能做些什么来使
在哪里正常工作吗?谢谢

是否可以添加一些导致错误的值?是否要从列中获取实际日期值?我不确定是哪个日期导致了错误,但我已经扫描了该列,没有看到任何看起来奇怪的日期。我无法复制它。这可能是安装到数据库的SQL类型的问题吗?我不太支持后端方面的东西,但我可以与管理员检查,以了解我们正在运行的版本。谢谢