想给我这条sql修改

现在时间为8-20点的  查询昨天00点到今晚23.59.59的数据

现在时间为20-明天早上8点 查询中午12点到明天中午12点的数据

麻烦大佬帮我看下我的sql修改一下

SELECT MATERIALID 包装编码,

MACHINENAME 上料设备,

MACHINECODE 上料设备编码,

LINENAME 车间线体,

FGCODEVERSION 原料id,

STARTNUM 原料数量,

LASTNUM 剩余数量,

EVENTTIME 操作时间

FROM MATERIAL_ONLINE

WHERE WORKSHOPNAME='BL塑胶制造课'

AND MACHINECODE LIKE '%H%'

AND (TO_CHAR(EVENTTIME,'YYYY-MM-DD HH24:MI:SS') >=(CASE WHEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) < '08'

THEN TO_CHAR(SYSDATE - 1,'YYYY-MM-DD') || ' 12:00:00'

WHEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) >= '08' AND SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) < '20' THEN TO_CHAR(SYSDATE,'YYYY-MM-DD') || ' 23:59:59'

WHEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) >= '20' THEN TO_CHAR(SYSDATE,'YYYY-MM-DD') || ' 12:00:00'END)

AND TO_CHAR(EVENTTIME,'YYYY-MM-DD HH24:MI:SS') <(CASE WHEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) < '08'

THEN TO_CHAR(SYSDATE,'YYYY-MM-DD') || ' 12:00:00' WHEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) >= '08'

AND SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) < '20'

THEN TO_CHAR(SYSDATE,'YYYY-MM-DD') || ' 12:00:00'

WHEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),12,2) >= '20'

THEN TO_CHAR(SYSDATE + 1,'YYYY-MM-DD') || ' 12:00:00' END))

GROUP BY MATERIALID,

MACHINENAME,

MACHINECODE,

LINENAME,

FGCODEVERSION,

STARTNUM,

LASTNUM,

EVENTTIME

ORDER BY EVENTTIME

a475547619 发布于 2021-11-16 13:48
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
黄源Lv6中级互助
发布于2021-11-16 14:17(编辑于 2021-11-16 14:20)

判断放到${if(HOUR(now())<8,条件1,if(HOUR(now())>20,条件1,条件2))}

去做不是简单得多

最佳回答
0
北纬六十六度Lv4初级互助
发布于2021-11-16 13:52

这是什么数据库 between 不能用么

  • a475547619 a475547619(提问者) oracle 不一样啊 我要获取当前时间 然后判断是哪个范围
    2021-11-16 13:53 
最佳回答
0
Doctor_WeiLv7中级互助
发布于2021-11-16 14:04

没看明白你这是啥意思

第一句话就描述错了吧(今晚),时间还没到呢,你们业务库会存未来数据?

你可以考虑用时间做减法的方式做一下

  • a475547619 a475547619(提问者) 只是一个范围而已 没有数据的自然不显示的
    2021-11-16 14:06 
  • 北纬六十六度 北纬六十六度 我好想明白了,他是分了两个时间段,8点到20点,查询前一天整天的数据,20点到第二天8点查询今天12点到第二天12点的数据。他好像要做一个实时显示。
    2021-11-16 14:09 
  • a475547619 a475547619(提问者) 回复 北纬六十六度 是的老哥 就是你这样的 我现在的这个 你知道我现在的sql要怎么改才行吗
    2021-11-16 15:47 
  • 北纬六十六度 北纬六十六度 回复 a475547619(提问者) 我读你写的case when 也差不多,我这里也没有oracle数据库,你自己运行试试吧。
    2021-11-16 16:15 
  • 4关注人数
  • 424浏览人数
  • 最后回答于:2021-11-16 14:20
    请选择关闭问题的原因
    确定 取消
    返回顶部