Hi,
You can use isdate function along with a case statement as below:
create table #temp
(string varchar(32) null);
insert #temp
select '2012-01-08'
union
select '2012-04-04'
union
select '2013-01-04'
union
select '2013-02-26'
union
select '2013-03-12'
union
select '0210-05-12'
union
select '2010-02-30'
union
select 'blah'
union
select ''
union
select null
select string, ISDATE(string) as is_date, case isdate(string) when 0 then null else CONVERT(datetime, string, 120) end as date
from #temp
Regards,
Bevan Keighley