如图,我想只取整点的值比如每天的0点,1点每天只取24个值sql应该怎么优化

微信图片_20220106135245.png

yzm187086 发布于 2022-1-6 13:53
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-1-6 13:58(编辑于 2022-1-6 14:57)

SELECT 

TAG ,

to_char(RECORDTIME,'yyyy-mm-dd HH24:MI:SS'),

to_number(RECORDVALUE ) 

FROM HSE.BA_COLLECTIONDATA 

WHERE TAG IN( 'FAR13_5710_FT-30103' ) 

AND to_char(RECORDTIME,'yyyy-mm-dd HH24:MI:SS') >='2022-01-05' 

AND to_char(RECORDTIME,'yyyy-mm-dd HH24:MI:SS') <='2022-01-06' 

and substr(to_char(RECORDTIME,'YYYY-MM-DD HH24:MI:SS'),15,20)='00:00' 

ORDER BY RECORDTIME DESC

image.png

select t.* from (

select '2021-01-01 15:15:00' as dtime from dual

union all

select '2021-01-02 08:00:00' as dtime from dual

union all

select '2021-01-01 08:00:00' as dtime from dual

union all

select '2021-01-06 08:00:00' as dtime from dual

)t 

where 1=1

and t.dtime>='2021-01-01'

and t.dtime<'2021-01-03'

and substr(to_char(to_date(t.dtime,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'),15,20)='00:00'

  • CD20160914 CD20160914 回复 yzm187086(提问者) 你的date1参数是如何录入的。。截图看一下。。
    2022-01-06 14:05 
  • CD20160914 CD20160914 回复 yzm187086(提问者) 不要大于,要等于。你不是要整点呢。要等于。。。
    2022-01-06 14:06 
  • CD20160914 CD20160914 回复 yzm187086(提问者) 我的这个是多加一个条件。你上面的限制日期一样要限制。也就是最上面的限制为1-6号,和小于等于1-7号这两天的日期限制。然后多增加的条件为整点我那个就可以了。
    2022-01-06 14:11 
  • CD20160914 CD20160914 回复 yzm187086(提问者) 看我上面模拟出来的结果。。你可以在plsql里面执行看。。。
    2022-01-06 14:19 
  • CD20160914 CD20160914 回复 yzm187086(提问者) 上面的语句就是取所有期间范围内的整点呢。你可以把我上面模拟的语句放进去测试。。。。
    2022-01-06 14:25 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-1-6 13:59(编辑于 2022-1-6 14:00)

分和秒都是0

select  distinct tag ..........中间不变.......   and to_char (RECORDTIME,'mi')=0 and to_char (RECORDTIME,'ss')=0

最佳回答
0
Z~/Lv6初级互助
发布于2022-1-6 14:16(编辑于 2022-1-6 14:16)
  • 3关注人数
  • 472浏览人数
  • 最后回答于:2022-1-6 14:57
    请选择关闭问题的原因
    确定 取消
    返回顶部