If the formats for your sample data were
- 31.12.1980
dd.mm.yyyy
- 01.12.65
mm.dd.yy
- 1990/02/12
yyyy/mm/dd
- 12/12/1992
mm/dd/yyyy
then, here is a sample expression for the formats.
(the format of fifth data '1999.02.12' was not in the expected formats, then returned null.)
Code:
------------------------------ Commands Entered ------------------------------
SELECT birthday
, DATE(
TIMESTAMP_FORMAT(
birthday
, CASE TRANSLATE(birthday , '' , '0123456789' , '*')
WHEN '**.**.****' THEN 'dd.mm.yyyy'
WHEN '**.**.**' THEN 'mm.dd.rr'
WHEN '****/**/**' THEN 'yyyy/mm/dd'
WHEN '**/**/****' THEN 'mm/dd/yyyy'
END
)
) AS standard_date
FROM (VALUES '31.12.1980'
, '01.12.65'
, '1990/02/12'
, '12/12/1992'
, '1999.02.12'
) employes(birthday);
------------------------------------------------------------------------------
BIRTHDAY STANDARD_DATE
---------- -------------
31.12.1980 1980-12-31
01.12.65 1965-01-12
1990/02/12 1990-02-12
12/12/1992 1992-12-12
1999.02.12 -
5 record(s) selected.