在Oracle中实现时间相加处理

发表于:2007-06-22来源:作者:点击数: 标签:
-- 名称:Add_Times -- 功能:返回d1与NewTime相加以后的结果,实现时间的相加 -- 说明:对于NewTime中的日期不予考虑 -- 日期:2004-12-07 -- 版本:1.0 -- 作者:Kevin create or replace function Add_Times(d1 in date,NewTime in date) return date is

   
  -- 名称:Add_Times
  -- 功能:返回d1与NewTime相加以后的结果,实现时间的相加
  -- 说明:对于NewTime中的日期不予考虑
  -- 日期:2004-12-07
  -- 版本:1.0
  -- 作者:Kevin
  

  create or replace function Add_Times(d1 in date,NewTime in date) return date
  is
  hh  number;
  mm  number;
  ss  number;
  hours number;
  dResult date;
  begin
  -- 下面依次取出时、分、秒
  select to_number(to_char(NewTime,'HH24')) into hh from dual;
  select to_number(to_char(NewTime,'MI')) into mm from dual;
  select to_number(to_char(NewTime,'SS')) into ss from dual;
  -- 换算出NewTime中小时总和,在一天的百分几
  hours := (hh + (mm / 60) + (ss / 3600))/ 24;
  -- 得出时间相加后的结果
  select d1 + hours into dResult from dual;
  return(dResult);
  end Add_Times;
  
  -- 测试用例
  -- select Add_Times(sysdate,to_date('2004-12-06 03:23:00','YYYY-MM-DD HH24:MI:SS')) from dual

原文转自:http://www.ltesting.net