【问题标题】:Convert SQL Server DATETIMEOFFSET to mySQL DateTime将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime
【发布时间】:2019-09-02 07:30:46
【问题描述】:
我的任务是编写一个 SSIS 包来将多个 SQL Server 数据库转换为 mySQL,我当前的问题是来自 SQL Server 的 DATETIMEOFFSET 数据类型。
我尝试过转换该字段,我尝试过转换它,我尝试过转换它然后将它转换为 DATETIME 数据类型,但没有运气。但是我尝试过的一切都导致了这个错误:
[ADO NET Destination [2]] 错误:数据插入过程中发生异常,提供者返回的消息是:ERROR [07006] [MySQL][ODBC 5.3(a) Driver][mysqld-5.6.10 ]不支持转换
关于如何将此 sql server 数据类型导入 mySql 的任何想法?
【问题讨论】:
标签:
mysql
sql-server
ssis
【解决方案1】:
使用几乎任何样式进行转换都会导致 datetime2 值转换为
世界标准时间。
此外,从 datetime2 到 datetimeoffset 的转换只是将偏移量设置为 +00:00,
根据以下内容,因此这是从 Datetimeoffset(offset!=0) 转换为
日期时间偏移(+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
【解决方案2】:
您可以使用以下派生列将 DATETIMEOFFSET 转换为 DATETIME 类型:
DATEADD("hh", DATEDIFF("hh",((DT_DBTIMESTAMP)[DataColumn]), [DataColumn]), ((DT_DBTIMESTAMP)[DataColumn]))
更多详情请查看以下文章: