可能是你的数据不都是“2000年1月3日”的格式,update没有问题
if object_id('zl') is not null drop table zl
select '2000年11月13日' as PUBNR
into zl
union select '2000年1月13日'
union select '2000年11月3日'
update [zl] set PUBNR = convert(varchar(8),cast(replace(replace(replace(PUBNR,'年','-'),'月','-'),'日','') as datetime),112)
select * from zl
/*
PUBNR
20001113
20001103
20000113
*/
drop table zl