Мне нужно вычислить totaldays в этой процедуре магазина, но я получаю ошибку преобразования:Конверсия удалось при преобразовании даты и/или времени из символьной строки расчета дней
DECLARE @ifIsMarch varchar(6), @addOneDay date, @startDay int,
@disconnectDay int, @startMonth int, @disconnectMonth int, @startYear
int, @disconnectYear int, @totaldays int
SELECT @startDay = DAY('2014-02-28')
SELECT @disconnectDay = DAY('2014-10-31')
SELECT @startMonth = MONTH('2014-02-28')
SELECT @disconnectMonth = MONTH('2014-10-31')
SELECT @startYear = YEAR('2014-02-28')
SELECT @disconnectYear = YEAR('2014-10-31')
print @startDay
print @disconnectDay
print @startMonth
print @disconnectMonth
print @startYear
print @disconnectYear
SELECT @addOneDay = DATEADD(DAY, 1, CONVERT(DATE, '2014-02-28'))
SELECT @ifIsMarch = LEFT(CONVERT(VARCHAR(15), @addOneDay, 110), 5)
print @addOneDay
Print @ifIsMarch
select @totaldays =
CASE
WHEN @ifIsMarch = '03-01' THEN
CASE
WHEN @DisconnectDate = '31' THEN (360*(@disconnectYear - @startYear)) + (30*(@disconnectMonth - @startMonth))
ELSE (360*(@disconnectYear - @startYear)) + (30*(@disconnectMonth - @startMonth)) + (@disconnectDay - 30)
END
END
print @totaldays
Вы не объявили '@ DisconnectDate' переменная – Lamak
И единственное, что вы хотите сделать, это получить количество дней между 2 датами ?, то вы, очевидно, должны используйте 'DATEDIFF', поскольку текущий ответ говорит – Lamak