关于两个时间段交互的问题

商品开始时间为A,结束时间为B,B>=A,现在有时间C和时间参数D,C是固定的时间,D是可选择的变动的时间,D>= C。现在要写这样一个语句,选择任意时间D,

如果商品a,B<=D,B>C且A<=c,取时间差B-C

如果商品a,B<=D,A>C,取时间差B-A

如果商品a,B>D,A<C,取时间差D-C

如果商品a,B>D,A>=C且A<D,取时间差D-A

其他则为0

林夕丶 发布于 2021-4-22 15:09
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
shirokoLv6资深互助
发布于2021-4-22 15:12

为什么是sql,不就是if公式吗

if(B<=D&&B>C&&A<=c,B-C,if(B<=D&&A>C,B-A,if(B>D&&A<C,D-C,if(B>D&&A>=C&&A<D,D-A,0))))

  • 林夕丶 林夕丶(提问者) 要提取数据,库里面很多个商品A,而且D还是个变动的时间参数
    2021-04-22 15:22 
  • 林夕丶 林夕丶(提问者) 是要把每个商品A的有效期和统计期的交集的天数算出来
    2021-04-22 15:24 
  • shiroko shiroko 回复 林夕丶(提问者) 如果要写在sql其实就是改成casewhen的组合
    2021-04-22 16:10 
  • 2关注人数
  • 241浏览人数
  • 最后回答于:2021-4-22 15:12
    请选择关闭问题的原因
    确定 取消
    返回顶部