我有一个表格,日期格式为字符串,格式如下YYYY-MM-DD。 这些数据包含数年的数据,我想使用以下查询来提取当前年份:
Declare @currentYear VARCHAR(5)
Select @currentYear = year(getdate())
select *
from tablename
where datefixed like @currentYear
上述查询未返回任何结果。 我已尝试按照此主题中列出的方法进行操作:Using variable in SQL LIKE statement
我错过了一些东西,但我不能把手指放在上面。
答案 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等..)并添加一个通配符(%)