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

时间:2011-04-19 14:58:47

标签: sql-server sql-server-2008

我想宣布一年如下:

DECLARE @Year varchar

并用以下内容填充:

select @Year = year('2011')

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

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

提前感谢您的帮助和建议。

我执行了此Google search以及此Google search

我想我可能会找到解决方案但是,如果有快捷方式,请告诉我。如果我搞清楚,我会更新。

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

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

YEAR(EntryDate) = YEAR('2011')

我的新方法

YEAR(EntryDate) = YEAR(cast(@year as varchar))

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

1 个答案:

答案 0 :(得分:6)

1 - 为什么要将其设为varchar而不是int?您希望2011不是Two thousand and eleven吗?

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

数值的语法是

DECLARE @Year int = YEAR(GETDATE())

修改

使用varchar进行数字比较的原因示例:

使用int

21< 2010 = TRUE

使用varchar

21< 2010 = FALSE