点头如捣蒜丶 2022-07-09 16:41 采纳率: 50%
浏览 111
已结题

SQL拼接语法,怎么拼接时间

现有一个表EQP_TRANS_ODS
会记录机台状态,
机况种类:IDLE/DOWN/RUN,
有Start_time,END_TIME,KEEP_TIME;
但是这个表有个问题,每天07:30,会自动截断重新生成一行数据,
例如机况Run时间为Start_time:6:00至End_time:9:00,
到7:30截断,会显示两行,
显示为
Run 6:00-7:30 keep_time:1.5 hr,
Run 7:30-9:00 keep_time:1.5 hr ,怎么通过SQL语法将两行字段,拼接为一行 6:00-9:00 keep_time:3 hr

  • 写回答

1条回答 默认 最新

  • Java智慧阁 2022-07-09 17:33
    关注

    比如当前测试表数据如下:

    img

    查询效果如下:

    img

    对应测试DDL语句:

    CREATE TABLE `eqp_trans_ods` (
      `id` int(11) DEFAULT NULL,
      `type` varchar(24) DEFAULT NULL,
      `Start_time` time DEFAULT NULL,
      `END_TIME` time DEFAULT NULL,
      `KEEP_TIME` float(2,1) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    

    对应测试DML语句:

    -- ----------------------------
    -- Records of eqp_trans_ods
    -- ----------------------------
    INSERT INTO `eqp_trans_ods` VALUES (1, 'IDLE', '06:00:00', '07:30:00', 1.5);
    INSERT INTO `eqp_trans_ods` VALUES (2, 'IDLE', '07:30:00', '09:00:00', 1.5);
    INSERT INTO `eqp_trans_ods` VALUES (3, 'DOWN', '05:00:00', '07:30:00', 2.5);
    INSERT INTO `eqp_trans_ods` VALUES (4, 'DOWN', '07:30:00', '09:00:00', 1.5);
    INSERT INTO `eqp_trans_ods` VALUES (5, 'RUN', '08:00:00', '10:30:00', 2.5);
    INSERT INTO `eqp_trans_ods` VALUES (6, 'RUN', '10:30:00', '14:30:00', 4.0);
    
    

    效果执行语句:

    SELECT
        a.type,
        -- min( a.Start_time ) Start_time,
        date_format(min(Start_time),'%H:%i') Start_time, -- 取值开始时间 最小值
        -- 显示小时和分钟 -- 格式显示日期/时间数据参考:https://www.w3school.com.cn/sql/func_date_format.asp
        -- max( a.END_TIME ) END_TIME,
        date_format(max(END_TIME),'%H:%i') END_TIME, -- 取值最大时间 结束时间
        sum( a.KEEP_TIME ) KEEP_TIME ,  -- 求和累计
        concat(type,' ',date_format(min(Start_time),'%H:%i'),'-',date_format(max(END_TIME),'%H:%i'),' keep_time',':',sum( a.KEEP_TIME ),' hr') printResult  -- 拼接结果
    FROM
        EQP_TRANS_ODS a 
    GROUP BY
        a.type 
    ORDER BY
        a.type DESC;
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月17日
  • 已采纳回答 7月9日
  • 创建了问题 7月9日

悬赏问题

  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗