year()和从string到int的转换之间的TSQL相等

时间:2013-06-12 14:40:49

标签: sql tsql

我有以下查询:

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

变量@termvarchar,其格式为YYYYMM,没有例外,pToDatedatetime
   这个查询应该做的是:从表Product获取与term的前四位数相同的年份的前100个ID,以及与最后两位数字相同的月份@term

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

变量value在这里应该没有意义。

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

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

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

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

0 个答案:

没有答案