Как преобразовать следующий штамп времени в Oracle:Преобразование Oracle Дата и время
12-MAY-2013 12:00:00 AM
к этому
11-MAY-2013 24:00:00
Спасибо.
Как преобразовать следующий штамп времени в Oracle:Преобразование Oracle Дата и время
12-MAY-2013 12:00:00 AM
к этому
11-MAY-2013 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 | ------------------------ | 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 демо
вы не можете достичь этого с помощью стандартных функций Oracle. Oracle использует значения 0 - 23, если вам нужно показать полночь, как 24:00, вам нужно написать свою собственную функцию.
Я сильно подозреваю, что любой, кто пытается ответить, нуждается в большем контексте. Для начала вы указали * текстовые * представления, тогда как я ожидаю, что фактическое хранилище будет несколько иным. Чего вы пытаетесь достичь? –
Я пытаюсь найти способ преобразования формата даты и времени Oracle. Если исходное хранилище в базе данных использует следующий формат '12 -MAY-2013 12:00 AM ', как мне преобразовать вывод моей инструкции SQL, чтобы формат стал «11 -MAY-2013 24:00»? Могу ли я использовать функцию TO_DATE для достижения этой цели? если да, то какой формат маскировки я могу использовать? – tabing16
Это действительно не дает больше контекста ... –