转换Oracle日期和时间

时间:2013-06-24 05:54:42

标签: sql oracle timestamp

如何在Oracle中转换以下时间戳:

12-MAY-2013 12:00:00 AM

到这个

11-MAY-2013 24:00:00

感谢。

2 个答案:

答案 0 :(得分: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 |
------------------------
| 11-May-2013 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 演示

答案 1 :(得分:0)

使用标准Oracle函数无法实现此目的。 Oracle使用值0 - 23,如果您需要像24:00一样显示午夜,则必须编写自己的函数。