Parazival Ответов: 1

Разница во времени в oracle


Разница во времени в

A1 =17.07.2014 12:47:46 PM -дата
А2 =12:10-Варчар
A3 =17.07.2014 10:53:34 AM -дата

1)a1-a2(часы,мин) = 0hrs37mins
2)a1-a3(часы,мин) = 1hrs54mins

спасибо

Что я уже пробовал:

(TO_DATE(to_CHAR(a1,'hh24:mi'),'HH24:MI') - TO_DATE(to_CHAR(a2,'hh24:mi'),'HH24:MI'))*24 as OBhour,
(TO_DATE(to_CHAR(a1,'hh24:mi'),'HH24:MI') - TO_DATE(to_CHAR(a2,'hh24:mi'),'HH24:MI'))* 24 * 60 as OBmin

----выход ----
для
1)0hrs 37mins
2)1.54 часа 114 минут

Jochen Arndt

А в чем проблема / вопрос?

Parazival

спасибо за повтор
когда я пытаюсь выполнить вышеупомянутый запрос, он показывает как
1)0hrs 37mins
2)1.54 часа 114 минут

Jochen Arndt

Пожалуйста, используйте кнопку ответа справа от комментария, чтобы ответить. Чем отправить уведомление по электронной почте.

Теперь я понял. Вы хотите отформатировать выходные данные как hh24:mi.
Вы можете использовать функцию DATEDIFF, чтобы получить разницу в секундах.
Затем передайте результат в
TO_CHAR(TO_DATE(seconds,'sssss'),'hh24:mi')
Или используйте математические операции для вычисления часов и минут и форматирования их с помощью TO_CHAR:
часы = TRUNC(секунды/3600)
минуты = TRUNC(MOD(секунды,3600)/60)

1 Ответов

Рейтинг:
0

Richard MacCutchan

Видеть TO_CHAR (datetime)[^] для правильного преобразования дат. Кроме того, вы должны использовать типы DateTime только для всех сохраненных значений и вычислений. Единственный раз, когда вам нужно преобразовать DateTime в символьную строку, - это когда вам нужно ее отобразить.