Sql server 使用带有链接服务器的like子句在datetime中使用变量的Openquery

Sql server 使用带有链接服务器的like子句在datetime中使用变量的Openquery,sql-server,tsql,openquery,Sql Server,Tsql,Openquery,每次执行此查询时,都会出现以下错误: 模运算符中的数据类型varchar和varchar不兼容。请求你的帮助。谢谢 DECLARE @date datetime, @SQL NVARCHAR(MAX); SET @date = '2019'; SET @SQL = 'SELECT * FROM OPENQUERY(LINK2, ''SELECT * FROM wordpress.wp_users WHERE user_registered LIKE '''%' +@date+ '%'''''

每次执行此查询时,都会出现以下错误: 模运算符中的数据类型varchar和varchar不兼容。请求你的帮助。谢谢

DECLARE @date datetime, @SQL NVARCHAR(MAX);

SET @date = '2019';

SET @SQL = 'SELECT * FROM OPENQUERY(LINK2, ''SELECT * FROM wordpress.wp_users WHERE user_registered LIKE '''%' +@date+ '%''''')';

EXEC sp_executesql @SQL;
您可以是varchar(4),因为您将其设置为string。然后使用
datepart()


您使用的单引号数量肯定不正确。它返回了以下错误:Msg 102,级别15,状态1,第1行“%”附近的语法不正确。Msg 105,第15级,状态1,第1行字符串“')后的未关闭引号。
DECLARE @date varchar(4), @SQL NVARCHAR(MAX);

SET @date = '2019';

SET @SQL = 'SELECT * FROM OPENQUERY(LINK2, ''SELECT * FROM wordpress.wp_users WHERE DATEPART(yy, user_registered) LIKE ''''%' +@date+ '%'''''')';

EXEC sp_executesql @SQL;