oracle按小时查询显示数据

2020-07-15 科技 303阅读

可以使用to_char()、concat()等函数实现查询前一小时、前一天、前一个月或者前一年的数据。

1、查询一小时

1)to_char(sysdate,'yyyy-mm-dd ')将系统当前时间转换为字符类型,仅取出年月日

2)|| 字符串连接符

3)to_char(sysdate,'hh24')-1取出系统当前时间的小时部分,hh24小时是24进制的

4)concat是字符串连接函数

select concat(to_char(sysdate,'yyyy-mm-dd ')||(to_char(sysdate,'hh24')-1),':00:00') start_time,concat(to_char(sysdate,'yyyy-mm-dd hh24'),':00:00') end_time from dual

2、查询前一天

1)to_char(sysdate,'yyyy-mm-dd ')将系统当前时间转换为字符类型,仅取出年月日

2)|| 字符串连接符

 select to_char(sysdate-1,'yyyy-mm-dd ')||'00:00:00' start_time,to_char(sysdate-1,'yyyy-mm-dd ')||'23:59:59' end_time  from dual

3、查询前一个月

1)to_char(sysdate,'yyyy-mm-dd ')将系统当前时间转换为字符类型,仅取出年月日

2)|| 字符串连接符

3)add_months(sysdate,-1)取出系统当前时间月部分,然后-1

4)concat是字符串连接函数

select concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-'),'01 00:00:00')start_time,   
   concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-')||to_char(LAST_DAY(sysdate),'dd '),'23:59:59') end_time     from dual

4、查询前一年

1) extract(year from sysdate) 从系统日期从取出年部分

 2)|| 字符串连接符

3)to_char(LAST_DAY(sysdate),'dd ')取出系统日期中的最后一天

4)concat是字符串连接函数

 select extract(year from sysdate)-1||'-01-01 00:00:00' start_time,concat(extract(year from sysdate)-1||'-12-'||to_char(LAST_DAY(sysdate),'dd '),'23:59:59') end_time   from dual
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com