我想宣布一年如下:
DECLARE @Year varchar
并用以下内容填充:
select @Year = year('2011')
我可以这样做,还是必须创建一个完整的日期并用填充信息填充它?
我希望有一个可重复使用的年度可用性,我可以注入我的查询。
提前感谢您的帮助和建议。
我执行了此Google search以及此Google search
我想我可能会找到解决方案但是,如果有快捷方式,请告诉我。如果我搞清楚,我会更新。
我认为我需要添加一些额外的信息以便澄清。
我需要这个变量才能对我数据库中的日期进行一些日期比较。我想检查以验证变量@Year是否等于数据库中日期的年份。
YEAR(EntryDate) = YEAR('2011')
或
我的新方法
YEAR(EntryDate) = YEAR(cast(@year as varchar))
这是我查询中where语句的一部分。
答案 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