提问者:小点点

在mysql中将小时格式转换为日-小时-分钟-秒


我正在使用这个代码在小时内得到输出

使用下面的代码。

导入脚本
创建表`customerevent`(`id`int NOT NULL,`createddate`datetime DEFAULT NULL,`modifiedate`datetime DEFAULT NULL,主键(`id`));

CustomerEvent(IDCreatedDateModifiedate)中插入值(“3”,“2020-01-08 12:00:00”,“2020-01-10 11:30:00”);

创建表holidays(idint NOT NULL AUTO_INCREMENT,holidaydatetime DEFAULT NULL,account_ofvarchar(45)DEFAULT NULL,主键(id));

我的代码:

SELECT d.Id, d.Createddate, d.Modifiedate,
            SUM((TIMESTAMPDIFF(day, start_date, end_date) -
    COALESCE((SELECT COUNT(*) FROM holidays WHERE holiday BETWEEN Createddate AND Modifiedate), 0))* 8 +
                  TIMESTAMPDIFF(minute, TIME(start_time), TIME(end_time)) / 60) task_time
         FROM customerevent d
         JOIN ( SELECT Id, DATE(Createddate) start_date, DATE(Modifiedate) end_date
                   , GREATEST('10:00:00', LEAST('18:00:00', TIME(Createddate))) start_time
                   , GREATEST('10:00:00', LEAST('18:00:00', TIME(Modifiedate))) end_time
                FROM customerevent) dd ON dd.Id = d.Id GROUP BY d.Id;

目前产量:15.500预期产量:15h 30m

我们每天只有8个工作小时,所以是15.500


共1个答案

匿名用户

试试这个

创建表CustomerEvent(IDint不为空,CreatedDateCURRENT_TIMESTAMP()为空,ModifiedATeCURRENT_TIMESTAMP()),主键(ID))