Задать вопрос
@Borton1

Как вывести день,час, минуты?

Добрый день! подскажите,пожалуйста, как из двух полей типа date ( пример 03.10.2004 17:03:28), чтобы выводилась разница как: дней, часов,минут...
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    SQL для начинающих: с нуля до сертификата Oracle
    2 недели
    Далее
  • SQL Online
    Курс продвинутого SQL
    3 недели
    Далее
  • Учебный центр IBS
    DB-028 Язык Oracle PL/SQL: расширенные возможности
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Если одну дату вычесть из другой даты, то получите количество дней в виде вещественного числа.
Добавив немного математики вычисления остатков, получите все компоненты разницы дат:
select trunc(sysdate - to_date('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS')) days,
   mod(trunc((sysdate - to_date('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS')) * 24), 24)  hours,
   mod(trunc((sysdate - to_date('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS')) * 24 * 60), 60) minutes,
   mod(trunc((sysdate - to_date('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS')) * 24 * 60 * 60), 60) seconds
from dual

Вариант 2:
select extract(day from (sysdate - to_timestamp('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS'))) days,
       extract(hour from (sysdate - to_timestamp('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS'))) hours,
       extract(minute from (sysdate - to_timestamp('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS'))) minutes,
       extract(second from (sysdate - to_timestamp('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS'))) seconds
from dual
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы