查询给出错误

时间:2013-04-19 04:23:23

标签: sql-server runtime-error

以下查询给出错误,请帮助我。

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 ')'.

1 个答案:

答案 0 :(得分:0)

两个快速评论:

首先,您不需要对这些数字使用转换 - 只需将它们放入您的查询中,即

set @dateScoreCard = convert('4/1/2013');

此外,在'where'条款中,您没有将dateiff的结果与任何事物进行比较。在datediff条款之后应该有一个部分,即:

where datediff(.....) > 2
例如,

。您的datediff函数只会为您提供一个数字,该数字是您给定的两个日期之间的差异,在您定义的条款中,这是几个月。使用该数字与您想要使sql语句为您工作的某个值进行比较。