You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储过程中按行累加分钟生成运行日期时间的实现需求

按工作时间规则计算工单的DATE和TIME字段

工单数据

RUNWORKORDERLOCATIONTRAVELTIMENUMEQUIPTOT_TIME
NO991起点
NO992客户111218
NO993客户2181188
NO994客户32293744
NO995客户434324

计算需求

  1. 需传入起始日期、起始时间作为参数,按WORKORDER顺序逐行计算每行的DATE和TIME字段
  2. 时间计算逻辑:
    • 累加TRAVELTIME(客户间行程时间)与TOT_TIME(维护时间,公式为NUMEQUIP × 8分钟)
  3. 工作时间规则:
    • 若计算后的时间超过13:00,需额外加1小时
    • 若计算后的时间超过18:00,需加15小时且日期加1天(例如客户3的744分钟维护时间跨3天)

当前实现的局限

现有SQL仅能实现连续时间累加,无法适配上述工作时间规则:

SELECT TBL1.RUN,TBL1.WORKORDER,TBL1.LOCATION, 
DATEADD(MI,TEMPTIME,'09:00') AS WORKORDERDATETIME
 FROM (SELECT RUN, WORKORDER, LOCATION, 
SUM(TRAVELTIME+TOT_TIME) OVER (ORDER BY WORKORDER) 
as TEMPTIME FROM MYTABLE WHERE RUN='NO99' )AS TBL1

期望解决方案

希望通过存储过程,采用逐行更新变量的方式实现完整的时间计算逻辑。


内容的提问来源于stack exchange,提问作者Nuno Marques

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:01:29