将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime
Posted
技术标签:
【中文标题】将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime【英文标题】:Convert SQL Server DATETIMEOFFSET to 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 的任何想法?
【问题讨论】:
【参考方案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]))
更多详情请查看以下文章:
SSIS Convert between datetimeoffset and datetime【讨论】:
以上是关于将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime的主要内容,如果未能解决你的问题,请参考以下文章
将 SQL Server 2008 r2 降级到 SQL Server 2008
SQL Server,HQL:如何将 SQL Server 日期时间列字段与日期进行比较
使用存储过程将记录从 SQL Server 复制到 SQL Server (2005)
将数据库从 SQL Server 2012 转移到 SQL Server 2008 [关闭]