我有一个包含varchar类型列的表,我将一个对象序列化为json并尝试将其保存在列中。
序列化的json对象:
{
"query":"select * from tablename where timestamp like concat(nvarchar,convert(date,getdate()),120,'%')"
}
当我在varchar列中保存上述数据时,它会给出以下错误。
"数据类型varchar和varchar在模运算符中不兼容"
任何帮助都将不胜感激。
答案 0 :(得分:1)
使用带%
符号的转义字符。它应该是'%'''在你的字符串中。完整字符串应如下所示:
{"query":"select * from tablename where timestamp like concat(nvarchar,convert(date,getdate()),120,''%'')"}.
如果您将序列化的JSON对象作为参数传递,则使用QUOTENAME()
这样的函数。
QUOTENAME(@parameterforserializedjsonobject, '''')