我现在想查出在 '2007-10-09 16:05:04' 时间段 正负5秒的记录 ('2007-10-09 16:05:04' 是个字符串)
select * from kd_mail where senddate between     and TO_CHAR(add_seconds(to_date('2007-10-09 16:05:04','yyyy-mm-dd hh24:mi:ss'),5 ) )我上面的语句 包错 add_seconds  高手帮下,分肯定加
只要实现功能不一定用上面的sql语句

解决方案 »

  1.   

    select * from kd_mail where senddate 
    between TO_CHAR(add_seconds(to_date('2007-10-09 16:05:04 ', 'yyyy-mm-dd hh24:mi:ss '),-5 ) )  
        and TO_CHAR(add_seconds(to_date( '2007-10-09 16:05:04 ', 'yyyy-mm-dd hh24:mi:ss '),5 ) ) 
      

  2.   

    我都说了 add_seconds 函数不对。。
      

  3.   

    不知这位XD说的add_seconds函数我在Oracle里怎么没见到过呢 ...    select * 
          from kd_mail 
         where senddate 
       between to_date('2007-10-09 16:05:04 ', 'yyyy-mm-dd hh24:mi:ss') - interval '5' second
           and to_date('2007-10-09 16:05:04 ', 'yyyy-mm-dd hh24:mi:ss') + interval '5' second;
      

  4.   

    select to_date( '2007-10-09 16:05:04  ',  'yyyy-mm-dd hh24:mi:ss ') +1/24*1/3600*5  from dual;+1是加一天,1/24*1/3600这个就是加1秒了。
      

  5.   

    add_second应该是自定义的函数吧
      

  6.   

    select to_date('2007-10-09 16:05:04','yyyy-mm-dd hh24:mi:ss')+1            加一天
    select to_date('2007-10-09 16:05:04','yyyy-mm-dd hh24:mi:ss')+1/24         加1小时
    select to_date('2007-10-09 16:05:04','yyyy-mm-dd hh24:mi:ss')+1/(24*60)    加1分钟
    select to_date('2007-10-09 16:05:04','yyyy-mm-dd hh24:mi:ss')+1/(24*60*60) 加1秒钟
    类推至毫秒0.001秒
      

  7.   

    select * from kd_mail where senddate between  
    TO_CHAR( to_date('2007-10-11 12:10:10','YYYY-MM-DD HH24:MI:SS')+numtodsinterval(-5,'second'),'YYYY-MM-DD HH24:MI:SS' ) AND 
    TO_CHAR( to_date('2007-10-11 12:10:10','YYYY-MM-DD HH24:MI:SS')+numtodsinterval(5,'second'),'YYYY-MM-DD HH24:MI:SS' )              
     这样应该可以做到了
      

  8.   

    select * from kd_mail where senddate between  
    TO_CHAR( to_date('2007-10-11 12:10:10','YYYY-MM-DD HH24:MI:SS')+numtodsinterval(-5,'second'),'YYYY-MM-DD HH24:MI:SS' ) AND 
    TO_CHAR( to_date('2007-10-11 12:10:10','YYYY-MM-DD HH24:MI:SS')+numtodsinterval(5,'second'),'YYYY-MM-DD HH24:MI:SS' )