2010-11-26 41 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)