gpt4 book ai didi

mysql - 如何在 MySQL 中求和时间?

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:38 27 4
gpt4 key购买 nike

DOWNTIME

如您在图中所见,我有一份停机报告,其中显示所选工厂在选定日期的停机时间。现在我想在 "Time Duration" 列中添加所有值,并在 "TOTAL TIME DURATION" 附近的单独显示中显示它。例如,在图像中,所选日期为 2015 年 3 月 17 日和 2015 年 3 月 30 日,所选工厂为 Raw Mill。该报告显示了所选 13 天内 Raw Mill 的停机时间。我想在 "Time duration" 列中添加这 13 天的所有时间,并将其显示在 "TOTAL TIME DURATION" 附近的单独显示中。时间格式为 HH:MM:SS。我怎样才能做到这一点?

最佳答案

使用以下查询:

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(Time_Duration))) FROM TableName AS 'TOTAL TIME DURATION';

但是,有时总持续时间可能会超过允许的最大时间值,即“838:59:59”。因此,您通常可以使用以下查询来计算溢出的总和:

SELECT CONCAT_WS(' hours and ',
((SUM(TIME_TO_SEC(Time_Duration)) DIV (TIME_TO_SEC('838:59:59')+1))*839),
(SEC_TO_TIME(SUM(TIME_TO_SEC(Time_Duration)) MOD (TIME_TO_SEC('838:59:59')+1)))
)
FROM TableName AS 'TOTAL TIME DURATION'

这将给出以下形式的输出:

3 hours and 3:45:05

您还可以获得您想要的确切格式的结果,例如6:45:05,使用以下自定义查询:

SELECT CONCAT_WS(
':',
(SUM(TIME_TO_SEC(Time_Duration)) DIV 3600,
(SUM(TIME_TO_SEC(Time_Duration)) MOD 3600) DIV 60,
(SUM(TIME_TO_SEC(Time_Duration)) MOD 3600) MOD 60)
FROM TableName AS 'TOTAL TIME DURATION';

关于mysql - 如何在 MySQL 中求和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29341748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com