0

我有以下查询:

select top 100 pId from Product
    inner join Code on cFKId = pId
    where year(pToDate) = convert(int, substring(@term,1,4)) 
        and month(pToDate) = convert(int, substring(@term,5,2))
        and codeValue = @value

变量@term是 avarchar并且形式为YYYYMM,也不例外pToDate是 a datetime
这个查询应该做的是:从表Product中获取前 100 个 id,它们的年份与 的前四位数字term相同,月份与 的后两位数字相同@term

我也试过了cast(substring(@term,1,4) to int)

该变量value在这里应该是不感兴趣的。

值是正确的,包括月份和年份以及变量的值@term。问题是它返回一个空查询,尽管数据库中有数百个值。

如果我打印转换的值,它会给我一个表格,如
2008 | 8
2008 | 9
2008 | 10
......等等。

如果我只写年份和月份,这些是我得到的确切值。

我哪里出错了,解决方案是什么?

4

0 回答 0