1 つの列内に 2 つの形式の日付を含めることが可能かどうかを知りたいです。
問題は、テーブルが日付であるNULLの場合はデフォルト値が必要であり、テーブルがNULLでない場合はタイムスタンプだけが必要になることです。
これを行う必要がある CASE を作成しましたが、機能しません。
CASE WHEN s.time IS null
THEN
TO_DATE('01-JAN-1901 01:00:00', 'dd-MON-yyyy HH24:MI:SS')
ELSE
TO_DATE(s.time, 'HH24:MI:SS')
END AS time
そのステートメントは、「ORA-01858: 数値が必要な場所に数値以外の文字が見つかりました。」
私がこのようなことをしようとすると:
CASE WHEN s.time IS null
THEN
TO_DATE('01-JAN-1901 01:00:00', 'dd-MON-yyyy HH24:MI:SS')
ELSE
TO_DATE(TO_CHAR(s.time, 'HH24:MI:SS'), 'HH24:MI:SS')
END AS time
それは機能しますが、時刻の前に日付が追加されます - そして、次のようになります:
TIME
-------
01-JAN-1901 01:00:00
01-JUL-2013 15:35:00
これの代わりに:
TIME
-------
01-JAN-1901 01:00:00
15:35:00
(これは私が欲しいものです)