将 datetimeoffset 数据类型转换为 datetime 数据类型导致值超出范围

par*_*aku 5 sql-server datetimeoffset

使用SQL Server 2008.I有一个表叫用户具有列LastLogindatadatetimeoffset数据类型

以下查询适用于生产服务器,但不适用于复制服务器。

select top 10 CAST(LastLoginDate AS DATETIME)  from User.
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。将 datetimeoffset 数据类型转换为 datetime 数据类型导致值超出范围。

谢谢

小智 4

检查 LastLoginDate 列值,例如“0001-01-01”或“0001/01/01”。

如果你有办法得到这个错误..

试试这个

select top 10  CAST(CASE when cast(LastLoginDate  as varchar) = '0001-01-01 00:00:00' 
                         THEN NULL ELSE GETDATE() end AS DATETIME) from User
Run Code Online (Sandbox Code Playgroud)