Měli byste umět:
update t
set date1 = greatest(date1, coalesce(date2, date1), coalesce(date3, date1), coalesce(date4, date1))
where date1 < greatest(date1, coalesce(date2, date1), coalesce(date3, date1), coalesce(date4, date1));
Ve vašich datech date1
zdá se, že nikdy nebude NULL
.