首页 > 解决方案 > 存储过程不返回结果

问题描述

我写了一个存储过程,但这不返回任何结果。该程序的查询工作正常。但是相同的查询不会在过程中返回任何结果。

程序:

ALTER proc [dbo].[GetValuesByDateRange](@dateFrom as datetime2, @dateTo as datetime2, @devId as varchar)
as
select *
from SensorValues
where AddDate between @dateFrom and @dateTo
and JSON_VALUE(Value,'$.DevId') = @devId

询问

select *
from SensorValues
where AddDate
between '2020-12-10 00:00:00' and '2020-12-14 00:00:00'
and JSON_VALUE(Value,'$.DevId') = '408414743'

在此处输入图像描述

标签: sqlsql-serversql-server-2008

解决方案


尝试在 2 个单独的条件之间使用括号并使用 varchar(max) 而不是单个 varchar

ALTER proc [dbo].[GetValuesByDateRange](@dateFrom as datetime2, @dateTo as datetime2, 
@devId as varchar(9))
as
select * from SensorValues 
where (AddDate between @dateFrom and @dateTo)
and JSON_VALUE(Value,'$.DevId')= @devId

推荐阅读