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

发布于 2024-09-30 11:40:00 字数 124 浏览 0 评论 0原文

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

I have field with an integer value which means number of seconds. I would want to display it as MM:SS, without hours, so for example 6000 seconds should be shown as 100:00.
What's the easiest way to do this? As far as I see, to_char cannot be used for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡の花香 2024-10-07 11:40:00

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

您可以使用一个简单的选择:

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)

This is a kind of workaround, as I haven't found better solution:

You could use a simple select:

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

This could be wrapped in a nice function:

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

Example of usage:

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文