我可以在SQL Server 2008中以某种方式声明一年吗?

Mic*_*ins 2 sql-server sql-server-2008

我想宣布一年如下:

DECLARE @Year varchar
Run Code Online (Sandbox Code Playgroud)

并用以下内容填充此内容:

select @Year = year('2011')
Run Code Online (Sandbox Code Playgroud)

我可以这样做,还是必须创建一个完整的日期并用填充信息填充它?

我希望有一个可重复使用的年度可用性,我可以注入我的查询.

在此先感谢您的帮助和建议.

我执行了这个谷歌搜索和谷歌搜索

我想我可能会找到解决方案但是,如果有快速的方法请告诉我.如果我搞清楚,我会更新.

我认为我需要添加一些额外的信息以便澄清.

我需要这个变量,以便对我数据库中的日期进行一些日期比较.我想检查以验证变量@Year是否等于数据库中日期的年份.

YEAR(EntryDate) = YEAR('2011')
Run Code Online (Sandbox Code Playgroud)

要么

我的新方法

YEAR(EntryDate) = YEAR(cast(@year as varchar))
Run Code Online (Sandbox Code Playgroud)

这是我的查询中where语句的一部分.

JNK*_*JNK 6

1 - 为什么要成为一个varchar而不是一个int?你想2011不是Two thousand and eleven吧?

2 - 您始终可以使用该YEAR(GETDATE())功能获取当前年份.

数值的语法是

DECLARE @Year int = YEAR(GETDATE())
Run Code Online (Sandbox Code Playgroud)

编辑:

varchar用于数字比较的原因示例:

int:

21 <2010 = TRUE

varchar:

21 <2010 = FALSE