如何仅比较sql server 2008中的datetime字段的年份?

bar*_*san 4 c# sql asp.net sql-server-2008

我有一个包含datetime列的表,名为:

 TranDate
Run Code Online (Sandbox Code Playgroud)

所以,我必须通过表查询才能获得仅依赖年份的数据.所以,我对如何做到这一点有点困惑.我当前的SQL查询是:

 select * from Angkasa_UnpostedRecords 
 where year(convert(datetime,TranDate,103) = year(convert(datetime,@FromDate,103)
Run Code Online (Sandbox Code Playgroud)

但我在这方面遇到了错误.请建议我怎么做这个.

谢谢.

Col*_*kay 12

语法错误是因为您没有正确关闭括号.您打开两个,但在相等运算符的每一侧只关闭一个


Ami*_*mit 5

尝试这个

select * from Angkasa_UnpostedRecords
WHERE DATEDIFF(year, TranDate, @FromDate)=0
Run Code Online (Sandbox Code Playgroud)


Nis*_*sha 5

我想你可以只使用年份部分

select * from Angkasa_UnpostedRecords 
 where year(TranDate) = year(@FromDate)
Run Code Online (Sandbox Code Playgroud)

如果TranDate和@FromDate不是日期时间字段

select * from Angkasa_UnpostedRecords 
 where year(convert(datetime,TranDate,103)) = year(convert(datetime,@FromDate,103))
Run Code Online (Sandbox Code Playgroud)

带有开合括号.