DateAdd function Oracle

Wednesday Jul 30th 2008 by DatabaseJournal.com Staff
Share:

Get a new date based in interval parameter.



>>Script Language and Platform: Oracle
Get a new date based in interval parameter.

Author: Alexis


Create or replace  Function DateADD(DatePart VarChar , Number int, CurrentDate Date)
 /*
 ================================================================================
 Arguments:
     DatePart       :  Specifies which part of the date to calculate the difference.
                    The table below list DateParts and abbreviations recognized
                     1)    D, DD, Day;
                     2)    M, MM, Month;
                     3)    Y, YY, Year;
                     4)    H, HH, Hour;
                     5)    N, NN, MI, Minute;
                     6)    S, SS, Second;
                     7)    W, WW, Week;
     Number         :  The count of days, months, hours, etc to be apply
     CurrentDate    :  The date for the calculation
 ================================================================================
 */
 return date
 as
 result    Date;
 sType    char(1);
 begin
     sType := substr(upper(DatePart), 1, 1);
     if sType = ''S'' then
         result := CurrentDate + Number/(24*60*60);
     end if;
     if sType = ''H'' then
         result := CurrentDate + Number/24;
     end if;
     if sType = ''D'' then
         result := CurrentDate + Number;
     end if;
     if sType = ''W'' then
         result := CurrentDate + (Number*7);
     end if;
     if sType = ''Y'' then
         result := Add_Months(CurrentDate, Number*12);
     end if;
     if sType = ''N'' then
         result := CurrentDate + Number/(24*60);
     end if;
     if sType = ''M'' then
         if upper(DatePart) like ''MI%'' then
             result := CurrentDate + Number/(24*60);
         else
             result := Add_Months(CurrentDate, Number);
         end if;
     end if;
 return result;
 exception  when others then return null;
 End;
/

Disclaimer: We hope that the information on these script pages is valuable to you. Your use of the information contained in these pages, however, is at your sole risk. All information on these pages is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, or fitness for a particular purpose... Disclaimer Continued


Back to Database Journal Home

Share:
Home
Mobile Site | Full Site
Copyright 2017 © QuinStreet Inc. All Rights Reserved