За этим стоит простой математический расчет.Если вы сохраняете время в столбце dec (4) в форме ЧЧММ, разница во времени между такими моментами проста:
Во-первых, мы рассчитываем ЧАСЫ и МИНУТЫ из такого значения:
HHx = int (Cx) / 100
MMx = MOD (int (Cx), 100)
Во-вторых, мы рассчитываем разницу в минутах:
DIFF = (HH2 * 60 + MM2) - (HH1 * 60 + MM1)
Наконец, мы рассчитываем разницу в ЧАСАХ и МИНУТАХ:
ЧАСОВ= DIFF / 60
МИНУТЫ = MOD (DIFF, 60)
Пример:
select
digits(dec(int(c)/100, 2))||':'||digits(dec(mod(int(c), 100), 2))||':00' as cTime
, digits(dec(int(i)/100, 2))||':'||digits(dec(mod(int(i), 100), 2))||':00' as iTime
, ((int(i)/100*60 + mod(int(i), 100)) - (int(c)/100*60 + mod(int(c), 100)))/ 60 as hours
, mod(((int(i)/100*60 + mod(int(i), 100)) - (int(c)/100*60 + mod(int(c), 100))), 60) as minutes
from table(values
(dec(1027, 4), dec(1030, 4))
, (dec(1027, 4), dec(1126, 4))
, (dec(1027, 4), dec(1128, 4))
) t (c, i)
Результат:
CTIME ITIME HOURS MINUTES
-------- -------- ----- -------
10:27:00 10:30:00 0 3
10:27:00 11:26:00 0 59
10:27:00 11:28:00 1 1