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

MySQL使用TIME_FORMAT格式化时间时如何去除前导零

你可以直接通过 MySQL 内置函数实现需求,写法非常简洁:

-- 替换括号内的时间字符串/表中时间字段即可直接使用
SELECT CONCAT_WS('-', HOUR("01:02:03"), MINUTE("01:02:03"), SECOND("01:02:03")) AS formatted_time;

实现逻辑

  • HOUR()、MINUTE()、SECOND() 分别提取时间的时、分、秒,返回值为数值类型,天然不带前导零,数值为0时会正常返回0,不会出现空值
  • CONCAT_WS('-', 数值1, 数值2, 数值3) 会自动用横杠拼接三个数值,无需手动处理连接符

测试效果

完全匹配你要求的转换规则:

  • 输入01:02:03 → 输出1-2-3
  • 输入00:02:03 → 输出0-2-3
  • 输入00:00:03 → 输出0-0-3

如果你使用的是 MySQL 8.0 及以上版本,也可以通过正则替换的方式实现,但兼容性和可读性都不如上述方案,不优先推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:45:03