sql - 存储过程不返回结果
问题描述
我写了一个存储过程,但这不返回任何结果。该程序的查询工作正常。但是相同的查询不会在过程中返回任何结果。
程序:
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'
解决方案
尝试在 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
推荐阅读
- ansible - 带有变量变量的模板有更好的方法吗?
- php - Laravel pluck 方法无法正确格式化对象
- angular - 如何在课堂上将数字转换为枚举打字稿
- java - 尝试使用 FileProvider 共享 MP3 文件时出现 FileNotFoundException
- three.js - 如何通过 Three.js 截屏?
- java - 蓝色第23课#我可以在这里使用for-loop吗?
- php - 如何在 php 中与多个用户进行身份验证?
- macos - BSD grep "?" wildcard alternative for GNU
- node.js - NodeJS:检查图像是否仅在中途下载
- javascript - 查找独特的项目集合