0

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

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

1 回答 1

0

两个快速评论:

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

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

此外,在“where”子句中,您没有将 datediff 的结果与任何内容进行比较 datediff 子句之后应该有一个部分,即:

where datediff(.....) > 2

例如。你的datediff函数只给你一个数字,它是你给它的两个日期的差,用你定义的术语来说,这里是几个月。使用该数字与您希望使 sql 语句为您工作的某个值进行比较。

于 2013-04-19T04:33:51.740 回答