[英]MySQL: How to convert seconds to mm:ss format?
我想将秒转换为minute : seconds
sql select语句中的minute : seconds
格式。
目前,我正在使用:
SELECT SEC_TO_TIME(duration) from messages;
它工作正常,但是它给了我这种时间格式: hh:mm:ss
但我需要mm:ss
是否可以使用sql查询将秒转换为mm:ss
格式?
如果该值小于一个小时,则只需执行以下操作:
SELECT RIGHT(SEC_TO_TIME(duration), 5) from messages;
如果您可能要花一个多小时,请执行以下算术操作:
SELECT CONCAT_WS(':', FLOOR(SEC_TO_TIME(duration) / 60),
SEC_TO_TIME(duration) % 60)
最近,我有一个类似的项目,需要将存储的秒数转换为m:ss
格式。 无论数量多少,都必须至少有一个数字代表分钟和两个数字代表秒。 禁止使用小时占位符,因此分钟值可以接受地超过59
并且还可以包含两位以上的数字。 分钟值不得为零。
这是我使用的:( SQLFiddle Demo )
CONCAT(FLOOR(seconds/60), ':', LPAD(MOD(seconds,60), 2, 0)) AS `m:ss`
又名
CONCAT(FLOOR(seconds/60), ':', LPAD(seconds%60, 2, 0)) AS `m:ss`
seconds | m:ss
-----------------
0 | 0:00
1 | 0:01
10 | 0:10
60 | 1:00
61 | 1:01
71 | 1:11
3599 | 59:59
3600 | 60:00
5999 | 99:59
6000 | 100:00
TIME_FORMAT(SEC_TO_TIME(seconds),'%i:%s')
不适合,因为项目规范不希望将分钟部分补零。 这是有关此技术的好帖子 。
TIME_FORMAT()或DATE_FORMAT()中没有个位数的分钟选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.