将mysql数据库中的datetime字段与mssql数据库中的varchar进行比较时出错

将mysql数据库中的datetime字段与mssql数据库中的varchar进行比较时出错,mysql,sql-server,datetime,Mysql,Sql Server,Datetime,我在mysql数据库中有一个名为CallDate的datetime字段。我在mssql数据库中有一个名为Actualdate的Varchar字段。我试图检索mysql数据库中的行日期比mssql数据库中最新的行日期新的记录的结果。我可以毫无错误地运行子查询,但当我将其与mysql查询部分结合使用时,它会因此错误而失败 [MySQL][ODBC 3.51驱动程序][mysqld-5.1.66]您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解可在“CONVERTDATETIME,

我在mysql数据库中有一个名为CallDate的datetime字段。我在mssql数据库中有一个名为Actualdate的Varchar字段。我试图检索mysql数据库中的行日期比mssql数据库中最新的行日期新的记录的结果。我可以毫无错误地运行子查询,但当我将其与mysql查询部分结合使用时,它会因此错误而失败

[MySQL][ODBC 3.51驱动程序][mysqld-5.1.66]您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解可在“CONVERTDATETIME,CallDate,120”附近使用的正确语法

select *
from openquery(
[amr-aws-xyz],
'SELECT * from abc WHERE CallDate > 
(SELECT TOP(1) CONVERT(DATETIME, ActualDate, 120 )
FROM MyDB.dbo.CDR
ORDER BY CONVERT(DATETIME, ActualDate, 120) DESC)')

您正在尝试在MySQL查询中使用MS SQL Server转换语法。您的MySQL服务器正确地拒绝了CONVERT调用。我也这么认为,但特定的子查询正在查询mssql数据库,即使我使用CONVERTACTACTALDATE、DATETIME而不是mssql语法,它也会失败。