在SQL Server中,数据类型datetimeoffset转换为datetime类型或datetime2类型时需要特别注意,有可能一不小心你可能会碰到下面这种情况。相信以前对数据类型datetimeoffset不太熟悉的人会对这个现象一脸懵逼......那么我们通过下面例子来给你简单介绍一下,datetimeoffset通过不同方式转换为datetime有啥区别,具体脚本如下:如下截图所示,通过CONVERT函数将datetiemoffset转换为datetime,你会发现上面这种方式丢失了时区信息,它将datetimeoffset转换为了UTC时间了。注意:datetiemoffset转换为datetime2也是同样的情况,这里不做赘述了。方案1:使用CAST转换函数。方案2:CONVERT函数中指定date_style为0 ,可以保留时区信息。下面例子演示对比,有兴趣的话,自行执行SQL后对比观察方案3:SQL Server 2016或以后的版本可以使用下面方案。注意之前的SQL Server版本不支持这种写法.

解析SQL Server中datetimeset转换datetime类型问题

解析SQL Server中datetimeset转换datetime类型问题

解析SQL Server中datetimeset转换datetime类型问题