Я пытаюсь создать переменную даты, основанную на дате последнего запуска таблицы, "b". То есть 4-месячное отставание от даты, извлеченной этим запросом:
select top 1 rundate from b
Это производит дату '202003.'
Это мой код, который пытается произвести переменную дату :
declare @four_month_lag_from_table_update varchar (6)
set @four_month_lag_from_table_update = CAST( year((select top 1 rundate from b)) as varchar(4)) +
right('00' + (select top 1 rundate from b)-4, 2)
select @four_month_lag_from_table_update
Я получаю код ошибки «Преобразование не выполнено при преобразовании даты и / или времени из символьной строки».
Ожидаемый результат за 4 месяца до даты последнего запуска, поэтому если последний дата запуска 202003 ожидаемый результат 201911.
Скажите, пожалуйста, что я делаю не так?