declare @s varchar(16)
set @s = '2006年8月15日'
select convert(datetime,case when isdate(replace(replace(replace(@s,'年','-'),'月','-'),'日',''))=1 then replace(replace(replace(@s,'年','-'),'月','-'),'日','') else '' end )
直接比较不行吗?
select * from 表 where 字段<'2006年6月3'
或
select * from 表 where cast(replace(replace(replace('2006年8月15日','年','-'),'月','-'),'日','') as datetime)<'2006-6-3'