怎么在一段时间上面加几个小时呢?
 
   例如这样。
  2009-05-05 00:00:00.0  我要用个算法变成2009-05-05 06:00:00  请问这样算法或函数怎么做到。。

解决方案 »

  1.   


    select to_char(
             to_date('2009-05-05 00:00:00','yyyy-mm-dd hh24:mi:ss') 
               + (6 / 24), -- 一天24小时
             'yyyy-mm-dd hh24:mi:ss')
    from dual;
      

  2.   

    什么都不用  直接加就好了
    select sysdate,sysdate+1/24 from dual;
      

  3.   

    那你不用to_char,
    直接
    select to_date('2009-05-05 00:00:00','yyyy-mm-dd hh24:mi:ss') 
               + (6 / 24) -- 一天24小时
    from dual;
    得到的是date类型,可以与另一个时间比较大小了
      

  4.   

    select to_date('2009-05-05 00:00:00','yyyy-mm-dd hh24:mi:ss')  
      + interval '1' month -- 一个月
    from dual;select to_date('2009-05-05 00:00:00','yyyy-mm-dd hh24:mi:ss')  
      + interval '20-8' year to month -- 20年8个月
    from dual;
      

  5.   


    sysdate+1即是加一天。一年?你要看是365还是366去加相应的天数吧?
      

  6.   

    加一年,比较保险的用add_months(sysdate,12)
    如果用365或者366就会有闰年问题
      

  7.   

    相差月就应该用add_months函数了; 天和小时的话直接加减就ok了