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

2 つの簡単なコメント:

まず、これらの数値に対して convert を使用する必要はありません。クエリに直接入力するだけです。つまり、

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

また、「where」句では、datediff の結果を何も比較していません。datediff 句の後にセクションが必要です。つまり、次のようになります。

where datediff(.....) > 2

例えば。関数datediffは、指定した 2 つの日付の差である数値のみを、定義した条件で返します。ここでは月です。その数値を使用して、SQL ステートメントを機能させたい値と比較します。

于 2013-04-19T04:33:51.740 に答える