Разница во времени в SQL Oracle - PullRequest
1 голос
/ 25 октября 2019

Мне нужно знать разницу между временем начала и временем окончания. Оба поля DATETIME, я пытался использовать "-" и DATADIFF.

Я уже пытался использовать DATADIFF и простое вычитание, преобразовывая поле в только время.

  1. (to_date(Fim_Hora,'HH24:MI') - to_date(Inicio_Hora,'HH24:MI')) AS Diferenca

  2. DATADIFF(MIN,Fim_Hora,Inicio_Hora)

Мне нужно знать время в минутах для использования в качестве параметров.

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

В Oracle вы можете напрямую вычитать даты, он возвращает разницу между датами в днях. Чтобы получить разницу в минутах, вы можете умножить результат на 24 (часы в сутки) и 60 (минуты в час):

(Fim_Hora - Inicio_Hora) * 24 * 60 diff_minutes

Предполагается, что и Fim_Hora, и Inicio_Hora имеют тип данныхDATE.

2 голосов
/ 25 октября 2019

Oracle не имеет типа данных time. Обычно вычитание работает достаточно хорошо:

select (end_time - start_time) as diff

Вам может потребоваться преобразовать в строку, если вы хотите, чтобы она была отформатирована определенным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...