【问题标题】:Formatting a Double Precision to 'MI:SS' in PostgreSQL在 PostgreSQL 中将双精度格式化为“MI:SS”
【发布时间】:2020-10-14 19:27:48
【问题描述】:

我在我的表中的一个列上运行一个平均值,它产生一个以秒为单位的双精度数。我需要将该输出格式化为“MI:SS”。

SELECT
     AVG(td.talktime) AS avg_talk_time
FROM
     talk_data td

【问题讨论】:

  • 欢迎来到 SO!最好提供更多细节,你已经尝试了什么,你得到了什么结果?你应该在问之前尝试过。

标签: sql string postgresql datetime average


【解决方案1】:

您可以使用算术和字符串函数:

select floor(avg(talktime)/60) 
    || ':' 
    || lpad((avg(talktime) % 60)::text, 2, '0') as avg_talk_time 
from talk_data

或者在 Postgres 中更好的是,您可以使用间隔:

select avg(talktime) * '1 second'::interval as avg_talk_time 
from talk_data

请注意,两个查询不会产生相同的结果集:假设平均值为 3601,第一个查询给出60:01,而第二个查询返回1:00:01

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 2020-02-04
    • 1970-01-01
    • 2018-03-02
    • 2010-11-28
    相关资源
    最近更新 更多