将秒转换为天、小时、分钟、秒 (MySQL)
Posted
技术标签:
【中文标题】将秒转换为天、小时、分钟、秒 (MySQL)【英文标题】:Convert seconds to days, hours, minutes, seconds (MySQL) 【发布时间】:2017-05-10 21:23:52 【问题描述】:例子:
秒="1015557";
结果应该是:
11 天 18 小时:05 分:57 秒
如何在 mysql 中做到这一点?
【问题讨论】:
可能重复:***.com/questions/8193868/… 不,不是。 【参考方案1】:select concat(
format(floor(s / @day),0),
'days ',
time_format(sec_to_time(s % @day),'%Hh:%im:%ss')
) formatted_date
from (select 1015557 s) t, (select @day = 3600 * 24);
产生:
+--------------------+
| days |
+--------------------+
| 11days 18h:05m:57s |
+--------------------+
【讨论】:
【参考方案2】:您可以使用这样的查询:
SELECT
DATE_FORMAT(date('1970-12-31 23:59:59')
+ interval 1015557 second,'%j days %Hh:%im:%ss') as result;
样本
mysql> SELECT
-> DATE_FORMAT(date('1970-12-31 23:59:59')
-> + interval 1015557 second,'%j days %Hh:%im:%ss') as result;
+----------------------+
| result |
+----------------------+
| 011 days 18h:05m:57s |
+----------------------+
1 row in set (0,00 sec)
mysql>
【讨论】:
您好@Bernd,非常感谢您提供的解决方案。但我发现这个值有一个错误:81865。我得到:365 天 22h:44m:25s - 我认为这是一个错误。你有想法吗?小提琴在这里:sqlfiddle.com/#!9/9eecb/89478【参考方案3】:你可以试试这个:
SET @seconds = 1015557;
SELECT CONCAT(
FLOOR(TIME_FORMAT(SEC_TO_TIME(@seconds), '%H') / 24), 'days ',
MOD(TIME_FORMAT(SEC_TO_TIME(@seconds), '%H'), 24), 'h:',
TIME_FORMAT(SEC_TO_TIME(@seconds), '%im:%ss')
)
AS Result
结果应该是:
11days 18h:05m:57s
希望这会有所帮助!
【讨论】:
【参考方案4】:SELECT *
, CONCAT( FLOOR(sec/3600),"hour ", FLOOR(MOD(sec,3600)/60),"min ",MOD(sec,60),"sec")
FROM table_1
【讨论】:
您好,请编辑您的答案以将代码最好放在堆栈片段中。 请花几分钟时间阅读How to Answer 以获得一些有用的回答问题的技巧。特别是。 “更全面的解释更好”部分。此外,你需要一个很好的理由来回答一个老问题,答案很好。在没有任何解释的情况下,这样的答案往往会在审核过程中被删除。 这不包括“天”。以上是关于将秒转换为天、小时、分钟、秒 (MySQL)的主要内容,如果未能解决你的问题,请参考以下文章