SQL Server - Where语句带变量返回没有结果

时间:2017-10-19 12:33:36

标签: sql-server tsql

我有一个表格,日期格式为字符串,格式如下YYYY-MM-DD。 这些数据包含数年的数据,我想使用以下查询来提取当前年份:

Declare @currentYear VARCHAR(5)
Select @currentYear = year(getdate())

select *
from tablename
where datefixed like @currentYear

上述查询未返回任何结果。 我已尝试按照此主题中列出的方法进行操作:Using variable in SQL LIKE statement

我错过了一些东西,但我不能把手指放在上面。

2 个答案:

答案 0 :(得分:3)

您忘记了尾随通配符%

select *
from tablename
where datefixed like @currentYear + '%'

答案 1 :(得分:2)

您可以使用以下内容:

Declare @currentYear int
Select @currentYear = year(getdate())

select *
from tablename
where year(convert(datetime,replace(datefixed,'-',''))) = @currentYear

如果你想使用like运算符,你必须确保datefixed是一个字符串类型(varchar,char等..)并添加一个通配符(%)