You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何将数值格式化为带h/min标识的自定义时间格式

实现方案

你的time列存储的是总分钟数值,不需要依赖原生标准时间格式化函数,直接通过数值拆分+字符串拼接就能实现需求,核心逻辑分三步:

  1. 计算小时部分:总分钟数整除60,得到整小时数
  2. 计算剩余分钟部分:总分钟数对60取模,得到扣除整小时后剩下的分钟数
  3. 按判断规则拼接结果:
    • 整小时数为0时,直接输出{分钟数}min
    • 剩余分钟数为0时,直接输出{小时数}h
    • 两个值都不为0时,输出{小时数}h {剩余分钟数}min

不同数据库的实现代码

MySQL

SELECT
  CASE
    WHEN time DIV 60 = 0 THEN CONCAT(time, 'min')
    WHEN time MOD 60 = 0 THEN CONCAT(time DIV 60, 'h')
    ELSE CONCAT(time DIV 60, 'h ', time MOD 60, 'min')
  END AS formatted_time
FROM your_table;
  • 传入值为70时:70整除60得1,取模得10,输出1h 10min
  • 传入值为50时:50整除60得0,输出50min
  • 传入值为120时:120整除60得2,取模得0,输出2h

PostgreSQL

SELECT
  CASE
    WHEN time / 60 = 0 THEN time || 'min'
    WHEN time % 60 = 0 THEN (time / 60) || 'h'
    ELSE (time / 60) || 'h ' || (time % 60) || 'min'
  END AS formatted_time
FROM your_table;

如果你的time列存储的是秒数或其他时间单位,只需要把计算逻辑里的除数60换成对应单位的换算值即可,整体判断和拼接逻辑通用。

内容的提问来源于stack exchange,提问作者Deadjim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:15:34