PostgreSQL - Какой самый простой способ преобразовать секунды в числовом поле в MM: SS - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть поле с целочисленным значением, которое означает количество секунд.Я хотел бы отобразить его как MM: SS, без часов, поэтому, например, 6000 секунд должны быть показаны как 100: 00Какой самый простой способ сделать это?Насколько я вижу, to_char не может быть использован для этого.

1 Ответ

1 голос
/ 05 ноября 2010

Это своего рода обходной путь, поскольку я не нашел лучшего решения:

Вы можете использовать простой выбор:

test=# select (6022/60)::TEXT || ':' || (6022%60)::TEXT;
 ?column? 
----------
 100:22
(1 row)

Это может быть заключено в приятную функцию:

CREATE FUNCTION format(integer) RETURNS TEXT AS $$
  select ($1/60)::TEXT || ':' || ($1%60)::TEXT;
$$ LANGUAGE SQL STABLE;

Пример использования:

test=# SELECT format(6);
 format 
--------
 0:6
(1 row)

test=# SELECT format(60);
 format 
--------
 1:0
(1 row)

test=# SELECT format(600);
 format 
--------
 10:0
(1 row)

test=# SELECT format(6000);
 format 
--------
 100:0
(1 row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...