以下查询给出错误,请帮助我。
declare @dateScorecard datetime
set @dateScorecard = convert(varchar, 4)+'/1/'+ convert(varchar,2013)
select @dateScorecard
select top 1 i_CurrentMonthColor from AK_ScoreCardDetails scr
where datediff(m, convert(Datetime, convert(varchar, 4)+'/1/'+ convert(varchar,2013)), @dateScorecard)
错误详情:
Msg 4145, Level 15, State 1, Line 5
An expression of non-boolean type specified in a context where a condition is expected, near ')'.
答案 0 :(得分:0)
两个快速评论:
首先,您不需要对这些数字使用转换 - 只需将它们放入您的查询中,即
set @dateScoreCard = convert('4/1/2013');
此外,在'where'条款中,您没有将dateiff的结果与任何事物进行比较。在datediff条款之后应该有一个部分,即:
where datediff(.....) > 2
例如,。您的datediff
函数只会为您提供一个数字,该数字是您给定的两个日期之间的差异,在您定义的条款中,这是几个月。使用该数字与您想要使sql语句为您工作的某个值进行比较。