首页 > 解决方案 > 将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime

问题描述

我的任务是编写一个 SSIS 包来将几个 SQL Server 数据库转换为 mySQL,我当前的问题是来自 SQL Server 的 DATETIMEOFFSET 数据类型。我尝试过转换该字段,我尝试过转换它,我尝试过转换它然后将它转换为 DATETIME 数据类型,但没有运气。但是我尝试过的一切都导致了这个错误:

[ADO NET Destination [2]] 错误:数据插入过程中发生异常,提供者返回的消息为:ERROR [07006] [MySQL][ODBC 5.3(a) Driver][mysqld-5.6.10]Conversion is不支持

关于如何将此 sql server 数据类型放入 mySql 的任何想法?

标签: mysqlsql-serverssis

解决方案


使用几乎任何样式进行转换都会导致 datetime2 值转换为 UTC。此外,从 datetime2 到 datetimeoffset 的转换只需将偏移量设置为 +00:00,如下所示,因此这是从 Datetimeoffset(offset!=0) 转换为 Datetimeoffset(+00:00) 的快速方法

declare @createdon datetimeoffset
set @createdon = '2008-12-19 17:30:09.1234567 +11:00'

select CONVERT(datetime2, @createdon, 1)
--Output: 2008-12-19 06:30:09.12

select convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))
--Output: 2008-12-19 06:30:09.1234567 +00:00

推荐阅读