How to get NULL value if date format is not matched in below query.
create table hiredate (ename character varying (50), hiredate text);
INSERT INTO hiredate (ename,hiredate) VALUES ('KING','1991-04-01'), ('BLAKE','2009-02-11'), ('CLARK','20020101'), ('SMITH','21/12/1992'), ('GLEN','13-8-1992'), ('JOHN','10-15-1994'), ('DEL','28/07202');
SELECT ename,hiredate, TO_DATE(
hiredate,
CASE
WHEN hiredate LIKE '____-__-__' THEN 'YYYY-MM-DD'
WHEN hiredate LIKE '________' THEN 'YYYYMMDD'
WHEN hiredate LIKE '__-__-____' THEN 'MM-DD-YYYY'
WHEN hiredate LIKE '__/__/____' THEN 'DD/MM/YYYY'
WHEN hiredate LIKE '__-_-____' THEN 'DD-MM-YYYY'
WHEN hiredate LIKE '___-__-____' THEN 'Mon-DD-YYYY'
END
) updated_hiredate
FROM hireDate;