无法在列中保存包含模数的字符串数据

时间:2017-05-16 11:39:49

标签: c# sql json

我有一个包含varchar类型列的表,我将一个对象序列化为json并尝试将其保存在列中。

序列化的json对象:

{  
   "query":"select * from tablename where timestamp like concat(nvarchar,convert(date,getdate()),120,'%')"
}

当我在varchar列中保存上述数据时,它会给出以下错误。

"数据类型varchar和varchar在模运算符中不兼容"

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用带%符号的转义字符。它应该是'%'''在你的字符串中。完整字符串应如下所示:

{"query":"select * from tablename where timestamp like concat(nvarchar,convert(date,getdate()),120,''%'')"}.

如果您将序列化的JSON对象作为参数传递,则使用QUOTENAME()这样的函数。

QUOTENAME(@parameterforserializedjsonobject, '''')