我有一个包含日期时间列的表,名为:
TranDate
因此,我必须通过表查询以获取仅取决于年份的数据。所以,我对如何做到这一点有点困惑。我当前的sql查询是:
select * from Angkasa_UnpostedRecords
where year(convert(datetime,TranDate,103) = year(convert(datetime,@FromDate,103)
但我在这方面遇到了错误。请建议我该怎么做。
谢谢你。
我有一个包含日期时间列的表,名为:
TranDate
因此,我必须通过表查询以获取仅取决于年份的数据。所以,我对如何做到这一点有点困惑。我当前的sql查询是:
select * from Angkasa_UnpostedRecords
where year(convert(datetime,TranDate,103) = year(convert(datetime,@FromDate,103)
但我在这方面遇到了错误。请建议我该怎么做。
谢谢你。
语法错误是因为您没有正确关闭括号。您打开两个,但在相等运算符的每一侧只关闭一个
我想你可以只使用年份部分
select * from Angkasa_UnpostedRecords
where year(TranDate) = year(@FromDate)
如果 TranDate 和 @FromDate 不是日期时间字段,则
select * from Angkasa_UnpostedRecords
where year(convert(datetime,TranDate,103)) = year(convert(datetime,@FromDate,103))
带左括号和右括号。
您缺少括号:
select * from Angkasa_UnpostedRecords
where year(convert(datetime,TranDate,103)) = year(convert(datetime,@FromDate,103))
year(
注意每个函数末尾的额外括号
尝试这个
select * from Angkasa_UnpostedRecords
WHERE DATEDIFF(year, TranDate, @FromDate)=0