【问题标题】:How to insert datetime into mysql from mssql with INSERT INTO OPENQUERY SELECT如何使用 INSERT INTO OPENQUERY SELECT 从 mssql 将日期时间插入 mysql
【发布时间】:2018-01-20 06:50:45
【问题描述】:

我之前一直使用以下格式插入到我的mysql数据库中,并希望保持统一。

INSERT INTO     OPENQUERY (ENET, 'SELECT * FROM ActiveDirectory.Computers')  -- MYSQL database
SELECT          c.[CommonName],
                c.[DistinguishedName],
                c.[SAMAccountName],
                c.[DNSHostName],
                c.[Location],
                c.[Division],
                c.[Department],
                c.[ManagedBy],
                c.[MachineRole],
                CAST(CAST(c.[LastLogon] as timestamp) as datetime) AS LastLogon,
                c.[OperatingSystem],
                c.[OperatingSystemVersion],
                c.[ServicePack],
                c.[OU],
                c.[CreatedOn],
                c.[ChangedOn],
                CASE WHEN c.[UserAccountControl] & 2 = 0 THEN 1 ELSE 0 END AS [Enabled]     -- Check to see if disabled.  Disabled = bitwise of 2;  4098 = 4096 + 2 = Trust Account + Disabled
FROM            [IT_ActiveDirectory].[dbo].[ADComputerTable] c -- MSSQL database

在将 MSSQL (c.LastLogon, c.CreatedOn, c.ChangedOn) 中的日期时间字段插入也是日期时间的 mysql 字段时,我的问题出现了。我已经尝试了几乎所有我能想到的CAST()CONVERT() 的组合,但我可能错过了一些东西。我也试过把mysql的字段类型改成时间戳。

返回:Conversion failed when converting date and/or time from character string.

MSSQL 不只是将数据发送到 MYSQL 并让它进行转换,这对我来说似乎很奇怪。相反,它看起来像是在尝试转换和匹配数据类型和数据,然后再将其发送到 MYSQL。

如果我不能以这种方式插入它,我愿意接受另一种格式,例如是否可以在 OPENQUERY() SELECT 内进行插入。有什么建议?我现在已经死在水里了。

【问题讨论】:

    标签: mysql sql sql-server datetime timestamp


    【解决方案1】:

    我会尝试转换为 ISO-8601 格式字符串:

    INSERT INTO OPENQUERY (ENET, 'SELECT * FROM ActiveDirectory.Computers')
    SELECT
        ...,
        CONVERT(VARCHAR, LastLogon, 126) AS LastLogon
    
    FROM [IT_ActiveDirectory].[dbo].[ADComputerTable];
    

    我也不喜欢SELECT * 中的OPENQUERY。如果列按位置匹配,则容易出错。考虑将开始扩展到列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 2016-12-06
      • 2011-11-11
      • 1970-01-01
      • 2014-10-22
      相关资源
      最近更新 更多