Verwenden Sie COALESCE
SELECT id,
GREATEST(date1,
COALESCE(date2, 0),
COALESCE(date3, 0)) as datemax
FROM mytable
Update:Diese Antwort verwendete zuvor IFNULL
was funktioniert, aber wie Mike Chamberlain in den Kommentaren betonte, COALESCE
ist eigentlich die bevorzugte Methode.