SQL查询不返回任何数据



我正在尝试测试存储过程中使用的查询。

该存储过程是从用于工作的另一个数据库中复制的。

存储过程将接受一个参数yyyymm,例如202006

它有一个查询,使用该参数中的substrings表示月份和年份。

这就是月份和年份数据的计算方式:

declare @themonth nvarchar(15) = '202006'
declare @month nvarchar(5)
set @month = substring(@themonth,5,2)
declare @year nvarchar(5)
set @year= substring(@themonth,1,4)

202006选择数据时,我将获取该参数的所有记录。

下面是逻辑的一些部分。我不需要在这里写出整个查询。我只提供一些伪代码:

Select top 10000 mmi.theMonth, *
from (here we have inner joins)
where mmi.theMonth = @theMonth

当执行时,我得到:

theMonth   rptdate
202006     2020-06-30 00:00:00.000

rptdate的数据类型为date第n个是nvarchar(6(

现在,当向该查询添加另一个条件时,将不返回任何内容。

这里有一个条件:

and rptdate like @month + '%' and rptdate like '%' + @year

我不知道为什么。2020-06-30 00:00:00.000包含@month = '06' and @year = '2020'

这种逻辑有什么错?

您的代码中通配符%的顺序错误,但您也可以执行

where year(rptdate) * 100) + month(rptdate) = @theMonth

相关内容

  • 没有找到相关文章

最新更新