powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разница между датами в формате часы:минуты:секунды
12 сообщений из 12, страница 1 из 1
Разница между датами в формате часы:минуты:секунды
    #39782707
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две даты, d1 и d2.
Нужно указать разницу между ними в формате ччч:мм:сс.
Если разница более одних суток, что ччч будет более 24, поэтому вариант to_char(trunc(d1)+numtodsinterval((d2-d1)*24*60*60,'second'), 'hh24:mi:ss') не подойдет.
Вариант с математикой (с целочисленным делением и остатком от деления, как тут ) в принципе работает, но уж очень громоздкий.
Может быть есть какой-нибудь компактный и красивый способ?
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39782724
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> WITH T AS (
  2             SELECT  SYSDATE DT1,SYSDATE + 1.23456789 DT2 FROM DUAL
  3            )
  4  SELECT  DT1,
  5          DT2,
  6          TRUNC((DT2 - DT1) * 24) || TO_CHAR(DATE '1-1-1' + (DT2 - DT1),':MI:SS') DIFF
  7    FROM  T
  8  /

DT1                 DT2                 DIFF
------------------- ------------------- ----------
03/05/2019 14:16:12 03/06/2019 19:53:59 29:37:47

SQL> 



SY.
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39782725
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, до такого способа я тоже додумался.
В принципе его мне достаточно.
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783552
KoTTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783566
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это вообще отлично.
К сожалению у меня 10g, форматирования времени нет, только числа и байты.
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783570
KoTTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там все очень тупо. Ну для своих задач нормально. Можете разврапить (или потрейсить) и посмотреть :)
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783662
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
WITH T AS (
SELECT  SYSDATE AS DT1, SYSDATE + 1.23456789 AS DT2 FROM DUAL)
   , dts AS (
SELECT NUMTODSINTERVAL(DT2-DT1, 'day') AS intrv FROM t)
--
SELECT intrv
     , extract(day from intrv)*24 
     + extract(hour from intrv) 
    || ':'
    || extract(minute from intrv)
    || ':'
    || extract(second from intrv) AS intrv_hh_mi_ss
FROM  dts;


Громоздко?!
Зато сразу понятно!
А это упростит сопровождение кода! :-)
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783678
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusГромоздко?!
Зато сразу понятно!
А это упростит сопровождение кода! :-)Километры копипаста ничего не упрощают.
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783679
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicSQL*PlusГромоздко?!
Зато сразу понятно!
А это упростит сопровождение кода! :-)Километры копипаста ничего не упрощают.А метры копипаста упрощают всё? :-)))
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783681
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий ЮринскийА метры копипаста упрощают всё? :-)))Стареем?
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783702
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринскийметры копипаста упрощают всё? :-)))
Тезис: для нормального сопровождения функционально завершенный кусок логики должен помещаться на 1-2 экранах.
Наблюдение: Если 8 строчек будет потрачено только на вычисление означенного "формата", то на все остальное останется на 7 строк меньше, чем нужно.
Следствие: "километр копипаста" снижает сопровождаемость кода относительно "метра копипаста".

Тезис 2: Типовой хомо способен одновременно "держать в голове" до 3-5 объектов.
Наблюдение: приведенные 8 строк кода не воспринимаются как единый объект, что усложняет (замедляет) восприятие всего кода.
Следствие: "километр копипаста" снова снижает сопровождаемость кода относительно "метра копипаста".

Вывод: утверждение
SQL*PlusГромоздко?!
Зато сразу понятно!
А это упростит сопровождение кода! :-)
внутренне противоречиво и, как следствие, ложно.
...
Рейтинг: 0 / 0
Разница между датами в формате часы:минуты:секунды
    #39783703
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicВалерий ЮринскийА метры копипаста упрощают всё? :-)))Стареем?Брюзжать ещё не надоело?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разница между датами в формате часы:минуты:секунды
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]