asp.net - 通配符sql日期查询

标签 asp.net sql sql-server

我正在做一个项目并卡在sql 查询上,查询没有给出任何错误也没有返回任何结果告诉我问题出在哪里

SELECT
      barcode
    , Date
    , timein
    , timeout
    , totaltime
    , leave
    , remarks
FROM TimeSheet
WHERE barcode = @barcode
     AND Date LIKE '@year-07-%'

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

如果运行这个

SELECT
      barcode
    , Date
    , timein
    , timeout
    , totaltime
    , leave
    , remarks
FROM TimeSheet
WHERE barcode = 123456
     AND Date LIKE '2013-07-%'

返回值

最佳答案

SQL Server 不扩展 '@year-07-%' 中的变量。

假设 @year 参数是一个 varchar 并且 [date] 列是一个 date,你可以试试这个:

where  convert(varchar(10), [date], 120) like @year + '-07-%'

或者更好:

where  datepart(year, [date]) = cast(@year as int)
       and datepart(month, [date]) = 7

关于asp.net - 通配符sql日期查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17920282/

相关文章:

c# - 未检测到复选框 == true

c# - XElement 查询给出错误 : "Sequence contains no elements"

mysql - SQL,一个id在一列中具有不同的值

asp.net - 如何在 ASP.NET MVC 中测试自定义模型绑定(bind)器?

sql - 如何查询并仅获取具有相同列值的连续行

sql - plpgsql - 通过返回结果集自动检测列类型

mysql - 有时我得到 IoT Mysql 查询 - 子查询返回超过 1 行

mysql - 将 MSSQL DDL 转换为 MySQL DDL

c# - 控制台应用程序无法从服务器连接到 sql server 实例,但可以从本地计算机连接

asp.net - 如何找到泄漏的数据库连接池句柄?