Преобразовать количество секунд в (Дата) Формат времени 'мм: сс' в Informix SQL - PullRequest
0 голосов
/ 22 января 2020

Я запрашиваю базу данных Informix с SQL. У меня есть столбец с числами, которые представляют количество секунд. Я хочу преобразовать это число в формат времени (мм: сс) в моем выражении SQL. Например, число «90» должно быть преобразовано в «01: 30». Важно, чтобы новое поле было не строковым, а полем времени (даты).

Ответы [ 2 ]

1 голос
/ 22 января 2020

Вы можете построить это как:

select floor(secs / 60) || ':' || lpad(mod(secs, 60), 2, '0')
0 голосов
/ 22 января 2020
SELECT DATETIME(0:0) MINUTE TO SECOND + colname UNITS SECOND
  FROM data_table

Это приведет к преобразованию строки, содержащей цифру c, значение 90, в значение 01:30 с типом DATETIME MINUTE TO SECOND. Вы можете изменить тип для работы с большими значениями:

SELECT DATETIME(0:0:0) HOUR TO SECOND + colname UNITS SECOND
  FROM data_table

Это будет обрабатывать неотрицательные значения от 0 до 86399, получая ответы от 00:00:99 до 23:59:59 типа DATETIME HOUR TO SECOND.

При желании вы можете добавить до 5 дробных цифр секунд.

Если входные значения могут быть отрицательными или 86400 или больше, то вам нужно определить, что вы хотите - вы получите ошибку, если значение равно 3600 в первом примере или 86400 или больше во втором.

...