如何在Oracle中转换以下时间戳:
12-MAY-2013 12:00:00 AM
到这个
11-MAY-2013 24:00:00
感谢。
答案 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一样显示午夜,则必须编写自己的函数。