【问题标题】: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]))
      

      更多详情请查看以下文章:

      【讨论】:

        猜你喜欢
        • 2011-06-24
        • 1970-01-01
        • 1970-01-01
        • 2013-11-29
        • 2012-12-05
        • 2018-11-10
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多