Вычтите два раза в поле даты - PullRequest
0 голосов
/ 04 ноября 2019

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

select TO_CHAR(VAHRUAE_ActualInTime, 'HH24:MI') ActualTime, TO_CHAR(VAHRUAE_InTime, 'HH24:MI') InTime from VAHRUAE_DailyAttendance

ActualTime          InTime
   01:25             00:57
   05:46             00:57
   06:00             00:57

Я хочу вычесть ActualTime из Intime. Я много искал в интернете и пробовал много идей, но не нашел решения. Я думал о том, чтобы разделить час от минуты и вычесть, а затем присоединиться к ним. проблема в том, что будут отображаться отрицательные значения (например, 46-57 приведет к -11 мин). Каково правильное решение для этого.
Обновление:
результат должен быть в часах: минимальная форма, что-то вроде:
05:03 (что с 06: 00-00: 57)

(если это поможет)

select VAHRUAE_ActualInTime ActualTime, VAHRUAE_InTime InTime from VAHRUAE_DailyAttendance

  ActualTime            InTime
--------------         --------
   01-JAN-70             00:57
   01-JAN-70             00:57
   01-JAN-70             00:57
desc VAHRUAE_DailyAttendance

Name                          Type
----------                   ------
VAHRUAE_ActualInTime          Date
VAHRUAE_InTime                Date

1 Ответ

0 голосов
/ 04 ноября 2019

Вы можете попробовать:

SELECT TO_TIMESTAMP(ActualTime) - TO_TIMESTAMP(InTime) FROM VAHRUAE_DailyAttendance;

ИЛИ другим способом:

SELECT (ActualTime - InTime)*24*60 AS difference_in_minutes from VAHRUAE_DailyAttendance;

Это значение отрицательно, если ActualTime находится в прошлом. Если вы хотите целочисленное значение, то округлите результат

select round((ActualTime - InTime)*24*60,0)
  from test;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...