2010-11-26 87 views
0

我遇到了問題,我正在寫一個存儲過程。轉換參數值表格DateTime到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表中月份字段是一個Int。

任何人都可以幫助這ASAP?

三江源

+0

月份是一個保留關鍵字,可以嘗試混淆你的表,然後引用Month列(alias.Month)。 – bleeeah 2010-11-26 10:45:47

+0

或者您可以使用`[Month]`代替 – thomaspaulb 2010-11-26 10:48:19

回答

1

要解決你的問題,你可以做一個

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

在你的SP的開始? 如果不給一個錯誤,你可以繼續:

SELECT Branch, Discount 
    FROM MonthlyPromotions 
    WHERE Month = CAST(DATEPART(mm,@FromDate) AS INT) 
0
select cast(getdate() as int)