通配符sql日期查询

Moh*_*sin 1 sql sql-server asp.net

我正在研究一个项目并坚持一个sql query,查询不会给出任何错误,也不会返回任何结果告诉我问题在哪里

SELECT
      barcode
    , Date
    , timein
    , timeout
    , totaltime
    , leave
    , remarks
FROM TimeSheet
WHERE barcode = @barcode
     AND Date LIKE '@year-07-%'
Run Code Online (Sandbox Code Playgroud)

我在运行时传递变量中的2个值,@barcode @year 但如果我在sql编辑器中显式运行查询值类型,它可以正常工作并返回值

如果运行这个

SELECT
      barcode
    , Date
    , timein
    , timeout
    , totaltime
    , leave
    , remarks
FROM TimeSheet
WHERE barcode = 123456
     AND Date LIKE '2013-07-%'
Run Code Online (Sandbox Code Playgroud)

它返回值

And*_*mar 7

SQL Server不会扩展变量'@year-07-%'.

假设@year参数是a varchar[date]列是a date,您可以尝试这样做:

where  convert(varchar(10), [date], 120) like @year + '-07-%'
Run Code Online (Sandbox Code Playgroud)

甚至更好:

where  datepart(year, [date]) = cast(@year as int)
       and datepart(month, [date]) = 7
Run Code Online (Sandbox Code Playgroud)