Преобразовать формат времени (чч: мм) в десятичный формат - PullRequest
0 голосов
/ 01 мая 2019

Я получаю часы, вычитая поля времени в формате чч: мм (00:21) используя это rtrim (char (TIMESTAMPDIFF (8, char (LABTRANS.finishtime - LABTRANS.starttime)))) || ':' || rtrim (char (mod (int (TIMESTAMPDIFF (4, char (LABTRANS.finishtime - LABTRANS.starttime))), 60))) как total_time, ), но я должен показать в десятичном виде (0.3500). Как мне этого добиться.

см. Мою таблицу образцов: -> создать таблицу labtrans (время начала, время окончания) -> вставить в labtrans (время начала, время окончания) значения ('08: 02 утра ',' 08:42 утра '), ('07: 02 утра ',' 08:42 утра '), («01: 02 pm», «09:02 PM»), («06: 02 утра», «08:00 утра»)

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Когда вы вычитаете TIME столбцы в Db2, получается DEC (6,0) в следующем формате: HHMMSS (длительность).
См. Раздел Время арифметика длядетали.
Итак, если вам нужно выразить time duration в формате HH+MM/60, вы можете использовать следующее:

select 
  starttime, finishtime
, finishtime-starttime hhmmss
, int(finishtime-starttime)/10000
+ dec(mod((finishtime-starttime)/100, 100), 27)/60 as "hh+mm/60"
from labtrans

Результат:

STARTTIME   FINISHTIME  HHMMSS   hh+mm/60
---------   ----------  ------   --------
08:02:00    08:42:00      4000     0.6666
07:02:00    08:42:00     14000     1.6666
13:02:00    21:02:00     80000     8.0000
06:02:00    08:00:00     15800     1.9666
0 голосов
/ 01 мая 2019

это вообще помогает?

values hour(current time) + .01 * minute(current time)

возвращает

1               
----------------
           10.14

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