0

Oracle で次のタイムスタンプを変換するにはどうすればよいですか :

2013 年 5 月 12 日午前 12:00:00

これに

2013 年 5 月 11 日 24:00:00

ありがとう。

4

2 に答える 2

1

更新可能な解決策

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のデモです

于 2013-06-24T06:03:00.077 に答える
0

標準の Oracle 関数を使用してこれを実現することはできません。Oracle は 0 ~ 23 の値を使用します。24:00 のような真夜中を表示する必要がある場合は、独自の関数を作成する必要があります。

于 2013-06-24T06:16:15.120 に答える