для форматирования значений без необходимости приведения и подстроки
используйте функцию Call Формат o try_cast
пример:
DECLARE @d DATETIME = '10/01/2011';
declare @tab table (StartDate date, year varchar(6),val1 int,val2 int)
insert into @tab(StartDate,year,val1,val2) values('2014-02-15','2015.0',0,0)
insert into @tab(StartDate,year,val1,val2) values('2015-02-15','2016.0',0,0)
insert into @tab(StartDate,year,val1,val2) values('2016-02-15','2017.0',0,0)
insert into @tab(StartDate,year,val1,val2) values('2017-02-15','2018.0',0,0)
update @tab SET [val1] = FORMAT ( StartDate, 'yyyy'),[val2] =try_cast(year as decimal(18,0))
select * from @tab
эти две функции можно найти в документации сервера sql