dcsimg

DateDiff Function

July 28, 2008



>>Script Language and Platform: Oracle
Determine the elapsed time between two dates stated in a specific interval.

Author: Paul Hunter


create or replace function DateDiff(DatePart varchar, StartDate date, EndDate date)
/*
================================================================================
Developer:  Paul Hunter
Created  :  05/22/2007
Purpose  :  Returns the DatePart difference between the two dates provided.
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, Minute;
                    6)    S, SS, Second;
    StartDate:  The beginning date for the calculation
    EndDate  :  The ending date for the calculation
================================================================================
*/
return number
as
result    number;
sType    char(1);
begin
    sType := substr(upper(DatePart), 1, 1);
    if sType = 'S' then
        result := trunc(86400 * (EndDate - StartDate));
    end if;
    if sType = 'H' then
        result := trunc(((86400 * (EndDate - StartDate)) / 60) / 60);
    end if;
    if sType = 'D' then
        result := trunc((((86400 * (EndDate - StartDate)) / 60) / 60) / 24);
    end if;
    if sType = 'W' then
        result := trunc(((((86400 * (EndDate - StartDate)) / 60) / 60) / 24) / 7);
    end if;
    if sType = 'Y' then
        result := trunc(months_between(EndDate, StartDate) / 12);
    end if;
    if sType = 'N' then
        result := trunc((86400 * (EndDate - StartDate)) / 60);
    end if;
    if sType = 'M' then
        if upper(DatePart) like 'MI%' then
            result := trunc((86400 * (EndDate - StartDate)) / 60);
        else
            result := trunc(months_between(EndDate, StartDate));
        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








The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers