SQL语句获得等时间间隔的时间段

记录一下之前看到的将时间等时间间隔分段的sql语句。
间隔三十分钟的sql语句:

SELECT TO_CHAR(TRUNC(SYSDATE, 'DD') + (30 / (24 * 60) * ROWNUM),
               'YYYY-MM-DD hh24:MI:SS')
  FROM 表名
  WHERE ROWNUM <= 48 / 30;

即可获得每隔30分钟的时间段

间隔五分钟:

SELECT TO_CHAR(TRUNC(SYSDATE, 'DD') + (5 / (24 * 60) * ROWNUM),
               'YYYY-MM-DD hh24:MI:SS')
  FROM ALL_OBJECTS
  WHERE ROWNUM <= 288 / 5;

间隔五分钟

间隔一分钟:

SELECT TO_CHAR(TRUNC(SYSDATE, 'DD') + (1 / (24 * 60) * ROWNUM),
               'YYYY-MM-DD hh24:MI:SS')
  FROM ALL_OBJECTS
  WHERE ROWNUM <= 1440 / 1;

1440为想获取的行的数量,以一分钟间隔为例,一天24小时,每小时60分钟,24*60=1440,所得时间范围即为一天,同理想获得30分钟为间隔的一天的数据,总的行数为24*(60/30)=48,可根据实际情况变化。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐