Add day to month : Utility Function « Function Procedure Packages « Oracle PL/SQL Tutorial






SQL>
SQL> DECLARE
  2      FUNCTION my_add_months (date_in IN DATE, months_shift IN NUMBER)
  3          RETURN DATE IS date_out DATE;
  4              day_in NUMBER;
  5              day_out NUMBER;
  6      BEGIN
  7          date_out := ADD_MONTHS(date_in, months_shift);
  8          day_in := TO_NUMBER(TO_CHAR(date_in,'DD'));
  9          day_out := TO_NUMBER(TO_CHAR(date_out,'DD'));
 10          IF day_out > day_in
 11          THEN
 12              date_out := date_out - (day_out - day_in);
 13          END IF;
 14
 15          RETURN date_out;
 16      END;
 17  BEGIN
 18      DBMS_OUTPUT.PUT_LINE(TO_CHAR(my_add_months(
 19          TO_DATE('31-Jan-2002 13:14:15','dd-mon-yyyy hh24:mi:ss'),1),
 20          'dd-Mon-yyyy hh24:mi:ss'));
 21
 22      DBMS_OUTPUT.PUT_LINE(TO_CHAR(my_add_months(
 23          TO_DATE('28-Feb-2002 13:14:15','dd-mon-yyyy hh24:mi:ss'),1),
 24          'dd-Mon-yyyy hh24:mi:ss'));
 25  END;
 26  /

PL/SQL procedure successfully completed.

SQL>
SQL>








27.26.Utility Function
27.26.1.Get nearest day
27.26.2.Compare date offset in a function
27.26.3.Create a procedure to count employees
27.26.4.To number or null
27.26.5.Removes all numeric digits from the string passed in.
27.26.6.Generic function utilizing dynamic SQL to return the number of rows in the specified table.
27.26.7.Get the Max date
27.26.8.String between function
27.26.9.Add day to month
27.26.10.Date time calculation function
27.26.11.Table Count function
27.26.12.Word count function
27.26.13.Define your own varchar to date function
27.26.14.Get the next business day
27.26.15.Format money
27.26.16.Date calculation: business days between
27.26.17.Convert Comma-separated values to table collection
27.26.18.Function to convert celsius to fahrenheit
27.26.19.Function to convert fahrenheit to celsius
27.26.20.Get circle area