我一直在使用以下格式插入我的mysql數據庫以前,並希望保持它的統一。將是在日期時間MSSQL(c.LastLogon, c.CreatedOn, c.ChangedOn
)到MySQL字段也是日期時間的字段時如何從MySQL插入日期時間到MySQL從INSERT INTO OPENQUERY SELECT
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
我的問題就來了。我已經嘗試過幾乎所有可以想到的CAST()
和CONVERT()
的組合,但我可能錯過了一些東西。我也嘗試將mysql的字段類型更改爲時間戳。
它返回:Conversion failed when converting date and/or time from character string.
我覺得奇怪,我說,MSSQL將不只是將數據發送到MySQL,讓它做轉換。相反,它看起來好像在將數據類型和數據發送到MYSQL之前試圖轉換和匹配數據類型和數據。
如果我不能用這種方式插入它,我可以使用另一種格式,例如可以在OPENQUERY() SELECT
中插入。有什麼建議麼?此刻我死在水中。