Main Tables Views Materialized Views Indexes Constraints Triggers Procedures Functions Packages Sequences Java Sources Sanity Check Index DDL scrips
Package source Package body source

RHN_DATE_MANIP

DDL script

Package source

Legend: comment string keyword reserved word operator
     1: package rhn_date_manip
     2: is
     3: 	periods_ago number;
     4: 	function get_reporting_period_start return date;
     5: 	function get_reporting_period_end return date;
     6: end rhn_date_manip;

Package body source

Legend: comment string keyword reserved word operator
     1: package body rhn_date_manip
     2: is
     3: 	function get_reporting_period_start
     4: 	return date is
     5: 		months_ago	number;
     6: 		weeks_ago	number;
     7: 		target_date	date;
     8: 		day_number	number;
     9: 	begin
    10: 		months_ago := rhn_date_manip.periods_ago/2;
    11: 		weeks_ago := mod(rhn_date_manip.periods_ago,2);
    12: 		target_date := trunc(add_months(sysdate,-months_ago)-(7*weeks_ago));
    13: 		day_number := to_char(target_date,'DD');
    14: 		if day_number > 16 then
    15: 			target_date := target_date - (day_number - 16);
    16: 		else
    17: 			target_date := target_date - (day_number - 1);
    18: 		end if;
    19: 		return target_date;
    20: 	end get_reporting_period_start;
    21: 	function get_reporting_period_end
    22: 	return date is
    23: 		months_ago	number;
    24: 		weeks_ago	number;
    25: 		target_date	date;
    26: 		day_number	number;
    27: 	begin
    28: 		months_ago := rhn_date_manip.periods_ago/2;
    29: 		weeks_ago := mod(rhn_date_manip.periods_ago,2);
    30: 		target_date := trunc(add_months(sysdate,-months_ago)-(7*weeks_ago));
    31: 		day_number := to_char(target_date,'DD');
    32: 		if day_number > 16 then
    33: 			target_date := last_day(target_date);
    34: 		else
    35: 			target_date := target_date + (-day_number + 15) + (1-1/86400);
    36: 		end if;
    37: 		return target_date;
    38: 	end get_reporting_period_end;
    39: end rhn_date_manip;