我在编写存储过程时遇到问题。
我正在从多个表中收集数据,其中大多数表都有一个日期值,但一个表只持有一个月(int)
我在SP的开头声明了以下参数。
@FromDate DateTime,
@ToDate DateTime
这适用于我的大多数表格,但对于我只需要@FromDate月份的表格,我遇到以下错误:
“无法将参数值从DateTime转换为Int32。”
这是我的问题表的Select语句:
SELECT Branch, Discount
FROM MonthlyPromotions
WHERE (Month = DATEPART(mm,@FromDate))
此外,在MonthlyPromotions表中,Month Field是Int。
任何人都可以帮忙解决这个问题吗?
三江源
答案 0 :(得分: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)
答案 1 :(得分:0)
select cast(getdate() as int)