oracle 怎么把24小时整点时间 拆分成每隔15分钟一个时间点

break_1995 2019-04-22 10:33:17

Select To_Char(t.DATATIME, 'yyyy-mm-dd hh24:mi:ss') datatime
From B_JCY_SECOND_DATA t
Where To_Char(t.DATATIME, 'mi') = '00'
And t.MPID = '10067634'
AND TRUNC(T.DATATIME) =
TRUNC(TO_DATE('2018-10-23', 'YYYY-MM-DD HH24:MI:SS'))
Order By t.DATATIME asc;

现在需要把每个整点时间拆分成15分钟间隔的,比如原来是2018-10-23 00:00:00,我需要获得 2018-10-23 00:00:00,2018-10-23 00:15:00,2018-10-23 00:30:00,2018-10-23 00:45:00,后面依次是2018-10-23 01:00:00,2018-10-23 01:15:00等等
...全文
811 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42531948 2019-09-10
  • 打赏
  • 举报
回复
select to_date(sysdate) +(rownum -1)/96 as data_date from dual connect by rownum <=96
break_1995 2019-04-22
  • 打赏
  • 举报
回复
引用 5 楼 nayi_224 的回复:
with tab1 as (
select trunc(sysdate, 'hh24') + level / 24 dt from dual connect by level <= 6
)
select t1.dt + (level - 1) / 24 / 60 * 15 from tab1 t1
connect by level <= 4
and prior t1.dt = t1.dt
and prior sys_guid() is not null

你好 你的这个方法 获取不到00:00:00开始的时间点
break_1995 2019-04-22
  • 打赏
  • 举报
回复
引用 4 楼 wildwolv 的回复:
select concat(substr(a.datetime,0,14),'00:00') 00,
concat(substr(a.datetime,0,14),'15:00') 15,
concat(substr(a.datetime,0,14),'30:00') 30,
concat(substr(a.datetime,0,14),'45:00') 45
from
(
Select To_Char(t.DATATIME, 'yyyy-mm-dd hh24:mi:ss') datatime
From B_JCY_SECOND_DATA t
Where To_Char(t.DATATIME, 'mi') = '00'
And t.MPID = '10067634'
AND TRUNC(T.DATATIME) =
TRUNC(TO_DATE('2018-10-23', 'YYYY-MM-DD HH24:MI:SS'))
Order By t.DATATIME asc;
)a
然后把生成的4列数据全部插入你需要这些数据的列

谢谢 问题已经解决
nayi_224 2019-04-22
  • 打赏
  • 举报
回复
with tab1 as (
select trunc(sysdate, 'hh24') + level / 24 dt from dual connect by level <= 6
)
select t1.dt + (level - 1) / 24 / 60 * 15 from tab1 t1
connect by level <= 4
and prior t1.dt = t1.dt
and prior sys_guid() is not null
wildwolv 2019-04-22
  • 打赏
  • 举报
回复
select concat(substr(a.datetime,0,14),'00:00') 00, concat(substr(a.datetime,0,14),'15:00') 15, concat(substr(a.datetime,0,14),'30:00') 30, concat(substr(a.datetime,0,14),'45:00') 45 from ( Select To_Char(t.DATATIME, 'yyyy-mm-dd hh24:mi:ss') datatime From B_JCY_SECOND_DATA t Where To_Char(t.DATATIME, 'mi') = '00' And t.MPID = '10067634' AND TRUNC(T.DATATIME) = TRUNC(TO_DATE('2018-10-23', 'YYYY-MM-DD HH24:MI:SS')) Order By t.DATATIME asc; )a 然后把生成的4列数据全部插入你需要这些数据的列
minsic78 2019-04-22
  • 打赏
  • 举报
回复
引用 2 楼 break_1995 的回复:
[quote=引用 1 楼 minsic78 的回复:] 是不是和这个帖子的需求是类似的? https://bbs.csdn.net/topics/392374623
不一样 我的时间点可能不是完整的24小时,比如一天只要获取00:00:00-22:00:00,23:00:00-23:59:50之间的数据 不需要22:00:00-23:00:00之间的数据[/quote] 过滤下不就可以了?
break_1995 2019-04-22
  • 打赏
  • 举报
回复
引用 1 楼 minsic78 的回复:
是不是和这个帖子的需求是类似的?
https://bbs.csdn.net/topics/392374623

不一样 我的时间点可能不是完整的24小时,比如一天只要获取00:00:00-22:00:00,23:00:00-23:59:50之间的数据 不需要22:00:00-23:00:00之间的数据
minsic78 2019-04-22
  • 打赏
  • 举报
回复
是不是和这个帖子的需求是类似的? https://bbs.csdn.net/topics/392374623

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧