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

如何在SQL中将分钟转换为小时?示例:300分钟转05:00

SQL实现分钟转HH:MM格式(如300分钟→05:00)

下面针对主流SQL数据库给出具体实现方案,核心逻辑是将总分钟数拆解为小时和分钟,再格式化为两位数字拼接成HH:MM格式:

MySQL

方法1:利用时间函数

通过SEC_TO_TIME将分钟转换为秒后转成时间类型,再用TIME_FORMAT格式化输出:

SELECT TIME_FORMAT(SEC_TO_TIME(300 * 60), '%H:%i') AS formatted_time;

输出结果:05:00

方法2:字符串拼接

直接计算小时和分钟,用LPAD补零后拼接:

SELECT 
  CONCAT(
    LPAD(FLOOR(300 / 60), 2, '0'), 
    ':', 
    LPAD(MOD(300, 60), 2, '0')
  ) AS formatted_time;

SQL Server

方法1:利用日期函数

通过DATEADD将分钟加到基准时间(0点),再用FORMAT格式化:

SELECT FORMAT(DATEADD(MINUTE, 300, 0), 'HH:mm') AS formatted_time;

方法2:字符串拼接

计算小时和分钟后补零拼接:

SELECT 
  CONCAT(
    RIGHT('0' + CAST(300 / 60 AS VARCHAR), 2), 
    ':', 
    RIGHT('0' + CAST(300 % 60 AS VARCHAR), 2)
  ) AS formatted_time;

PostgreSQL

方法1:利用INTERVAL类型

将分钟转为INTERVAL后用TO_CHAR格式化:

SELECT TO_CHAR(INTERVAL '300 minutes', 'HH24:MI') AS formatted_time;

方法2:字符串拼接

转换为文本后补零拼接:

SELECT 
  CONCAT(
    LPAD(FLOOR(300 / 60)::TEXT, 2, '0'), 
    ':', 
    LPAD(MOD(300, 60)::TEXT, 2, '0')
  ) AS formatted_time;

通用思路(跨数据库)

如果你的数据库不支持上述特定函数,只要支持整数除法、取模运算和字符串补零,就可以用类似逻辑实现:

  1. 计算小时:总分钟数 // 60(取整)
  2. 计算分钟:总分钟数 % 60
  3. 将小时和分钟分别格式化为两位数字(不足两位补前导零)
  4. 用冒号拼接两个字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:10:22