Я сделал простой тест, и он сработал:
create table #t (t varchar(10))
insert into #t values ('2001-08-18')
alter table #t alter column t date
Другой, с чем-то, похожим на дату, но не (получил тот же error
, что и вы):
create table #tt (t varchar(10))
insert into #tt values ('2001-08-32')
alter table #tt alter column t date
У вас наверняка есть строка, содержащая varchar (10), который не конвертируется.Вы можете найти эти значения с помощью выбора, подобного этому:
select try_cast(yourColumn as date) as tryCastyourColumn, yourColumn
from Yourtable
where try_cast(yourColumn as date) is null