2010-11-26 11 views
0

私は執筆中のストアドプロシージャに問題があります。変換パラメータ値形式DateTime to Int32

私は日付の値を保持するそのほとんどがテーブルの数からデータを収集していますが、一つはちょうどヶ月(INT)私はSPの先頭に次のパラメータを宣言

保持しています。

@FromDate DateTime, 
@ToDate DateTime 

これは私のテーブルのほとんどのために正常に動作しますが、私はちょうど@FromDateから月を必要としていますテーブルのために、私は次のようなエラーに遭遇:ここ

"Failed to convert parameter value form a DateTime to a Int32."

は私の選択であります問題テーブルのステートメント:

SELECT Branch, Discount 
    FROM MonthlyPromotions 
    WHERE (Month = DATEPART(mm,@FromDate)) 

また、MonthlyPromotionsテーブルのMonthフィールドはIntです。

誰でもこの手伝いできますか?

ありがとう

+0

MONTHは予約キーワードである、あなたのテーブルをエイリアシング試してみて、その後、月のコラム(alias.Month)を参照。 – bleeeah

+0

または代わりに '[Month]'を使うことができます。 – thomaspaulb

答えて

1

はあなたのSPの冒頭で

PRINT CAST(CAST(DATEPART(mm, @FromDate) AS INT) AS VARCHAR(50)) 
RETURN 

を行うことができ、あなたの問題を解決するには?それがエラーを与えていない場合に は、先に進むことができます。

SELECT Branch, Discount 
    FROM MonthlyPromotions 
    WHERE Month = CAST(DATEPART(mm,@FromDate) AS INT) 
+0

Spotをオンにします。乾杯。 –

+0

今日は、すべてのスクリプトと構文を作成したSQLの神、Prequelに祈る必要があると聞きました。それはおそらく本当の答えです。 – thomaspaulb

0
select cast(getdate() as int) 
関連する問題