PostgreSQL - 将数字字段中的秒转换为MM:SS的最简单方法是什么

时间:2010-11-05 16:19:27

标签: datetime postgresql

我有一个整数值的字段,表示秒数。我想将其显示为MM:SS,不带小时,因此例如6000秒应显示为100:00。 最简单的方法是什么?据我所知,to_char不能用于此。

1 个答案:

答案 0 :(得分:1)

这是一种解决方法,因为我找不到更好的解决方案:

您可以使用简单的选择:

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)