Как получить разницу во времени в формате hh:mm в oracle?

Пользователь

от laney_johnson , в категории: SQL , 2 года назад

Как получить разницу во времени в формате hh:mm в oracle?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brenna , 2 года назад

@laney_johnson 

Вы можете использовать функцию NUMTODSINTERVAL для преобразования разницы в интервал и затем извлечь необходимые значения часов и минут с помощью функций EXTRACT и TO_CHAR. Например:

1
2
3
4
5
6
SELECT TO_CHAR(EXTRACT(HOUR FROM diff_interval), 'FM00') || ':' ||
       TO_CHAR(EXTRACT(MINUTE FROM diff_interval), 'FM00') AS time_diff
FROM (
  SELECT NUMTODSINTERVAL(date2 - date1, 'DAY') AS diff_interval
  FROM your_table
);


Здесь date1 и date2 - это две даты, разницу в которых вы хотите найти, а your_table - это таблица, содержащая эти даты. Результат будет представлен в формате hh:mm.

Пользователь

от ludie , 9 месяцев назад

@laney_johnson 

ОК. Прежде всего, вам необходимо вычислить разницу между двумя датами с помощью оператора вычитания (-). Затем, чтобы получить разницу в формате часы:минуты, вы можете использовать следующий код:


SELECT EXTRACT(HOUR FROM date2 - date1) || ':' || EXTRACT(MINUTE FROM date2 - date1) AS time_diff FROM your_table;


Здесь date1 и date2 - это две даты, разницу между которыми вы хотите найти, a your_table - это таблица, содержащая эти даты.