У меня есть процедура, в которой пользователь вводит месяц, например, «JAN», чтобы извлечь данные за этот месяц. Я хочу сравнить входной месяц с месячной частью в дате. Это то, что я получил до сих пор.Извлечь месяц номер?
CREATE PROCEDURE SavingsAccountsAllDetail
(@Yr INT=NULL,
@Mon CHAR(3)=NULL)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Year INT
DECLARE @Month CHAR(3)
SET @Year = @Yr
SET @Month = @Mon
и сравнение часть.
datepart(year, A.DateOpen)[email protected] AND datepart(month, A.DateOpen)=datepart(MM, @Month)
Но когда я выполняю свою процедуру он говорит
Конверсия удалось при преобразовании даты и/или времени из символьной строки . Степень серьезности 16
Любая идея о том, как действовать?
Я хочу, чтобы пользователи вводили месяц в формате i.e 'JAN'. Как сравнить это с месячной частью даты? –
Затем проверьте ответ Правина, это именно то, что вы пытаетесь сделать. Просто будьте осторожны с тем, что он может работать некорректно в зависимости от языкового стандарта компьютера (он может вернуть Janvier, если язык является французским, например), и, вероятно, это безопаснее с точки зрения кода для использования номера месяца. – Gimly