时间:

select *  from mread.sup_operatelog a where a.stepid = '040110'   and a.operatetime > to_date('20160525 13:09', 'yyyymmdd hh24:mi')   and a.operatetime < to_date('20160525 13:15', 'yyyymmdd hh24:mi') order by operatetime desc

instr (sourceString,destString,start,appearPosition)

instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')

substr ( string, start_position, [ length ] )

substr  ('目标字符串',开始位置,长度)

REPLACE(str,from_str,to_str)   

————  to_str  不写表示空、null

例子

select replace(substr(a.operateobject,                      1,                      instr(a.operateobject, '|', 1, 1) - 1),               '书ID:') bookid,       replace(substr(a.operateobject,                      instr(a.operateobject, '|', 1, 4),                      instr(a.operateobject, '|', 1, 5) -                      instr(a.operateobject, '|', 1, 4) - 1),               '|章节ID:') mcpchapterid,       replace(substr(a.operateobject,                      instr(a.operateobject, '|', 1, 6),                      instr(a.operateobject, '|', 1, 7) -                      instr(a.operateobject, '|', 1, 6) - 1),               '|请求时间:') reqtime  from mread.sup_operatelog a where a.stepid = '040110'   and a.operatetime > to_date('20160520 3:09', 'yyyymmdd hh24:mi')   and a.operatetime < to_date('20160520 13:15', 'yyyymmdd hh24:mi')   and substr(a.operateobject,              instr(a.operateobject, '|', 1, 10) + 1,              instr(a.operateobject, '|', 1, 11) -              instr(a.operateobject, '|', 1, 10) - 1) = '处理结果返回码:0'

case

select case         when a.operatetime < to_date('20160525 13:10', 'yyyymmdd hh24:mi') then1         else2       end,       count(*)  from mread.sup_operatelog a where a.operatetime > to_date('20160525 13:09', 'yyyymmdd hh24:mi')   and a.operatetime < to_date('20160525 13:15', 'yyyymmdd hh24:mi') group by case            when a.operatetime <                 to_date('20160525 13:10', 'yyyymmdd hh24:mi') then1            else2          end                              select case         when op_date <= 60 then1         when op_date > 60 and op_date <= 120 then2         when op_date > 120 and op_date <= 600 then3         else4       end,       count(*)  from cfgbk.gc0524_sup_operatelog group by case            when op_date <= 60 then1            when op_date > 60 and op_date <= 120 then2            when op_date > 120 and op_date <= 600 then3            else4          end;

时间差 换算:

select trunc(sysdate, 'mi'),       a.implicitcreatetime,       (trunc(sysdate, 'mi') - a.implicitcreatetime) * 60 * 60 * 24 op_date  from cntdb.CON_T_BASECHAPTER a where a.implicitcreatetime > to_date('20160526 16:09', 'yyyymmdd hh24:mi') and a.implicitcreatetime < to_date('20160526 16:15', 'yyyymmdd hh24:mi')