Oracle で次のタイムスタンプを変換するにはどうすればよいですか :
2013 年 5 月 12 日午前 12:00:00
これに
2013 年 5 月 11 日 24:00:00
ありがとう。
更新可能な解決策
SELECT CASE WHEN dt - TRUNC(dt) = 0
THEN TO_CHAR(TRUNC(dt) - 1, 'DD-Mon-YYYY') || ' 24:00:00'
ELSE TO_CHAR(dt, 'DD-Mon-YYYY HH24:MI:SS')
END dt
FROM
(
SELECT TO_DATE('12-MAY-2013 12:00:00 AM', 'DD-Mon-YYYY HH:MI:SS AM') dt
FROM dual
)
出力:
| | DT | DT | ------------------------ | | 2013 年 5 月 11 日 24:00:00 |
これがSQLFiddleのデモです
元の回答試してみる
SELECT TO_CHAR(TO_DATE('12-MAY-2013 12:00:00 AM', 'DD-Mon-YYYY HH:MI:SS AM'), 'DD-Mon-YYYY HH24:MI:SS') dt
FROM dual
これがSQLFiddleのデモです
標準の Oracle 関数を使用してこれを実現することはできません。Oracle は 0 ~ 23 の値を使用します。24:00 のような真夜中を表示する必要がある場合は、独自の関数を作成する必要があります。