Преобразовать значение параметра формы DateTime в Int32 - PullRequest
0 голосов
/ 26 ноября 2010

У меня проблемы с хранимой процедурой, которую я пишу.

Я собираю данные из нескольких таблиц, большинство из которых содержат значение даты, но в одной содержится только месяц (int)

Я объявляю следующие параметры в начале моего SP.

@FromDate DateTime,
@ToDate DateTime

Это прекрасно работает для большинства моих таблиц, но для таблицы, где мне просто требуется месяц от @FromDate, я сталкиваюсь со следующей ошибкой:

"Не удалось преобразовать значение параметра из DateTime в Int32."

Вот мое утверждение Select для таблицы задач:

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

Кроме того, в таблице MonthlyPromotions поле месяца представляет собой Int.

Может кто-нибудь помочь в этом как можно скорее ??

Thankyou

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

Чтобы решить вашу проблему, вы можете сделать

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 голосов
/ 26 ноября 2010
select cast(getdate() as int)
...