Intermediate

19-10.

If you want to know the date of the first Monday in the current month, what function(s) can you use?

19-11.

Your server is located in London, but your client-side programs are doing their job in Chicago. Write a function that translates the time component of SYSDATE in the server to the time zone of your users.

19-12.

Write a function that returns the first day in the month that contains a specified date.

19-13.

Write a line of code that returns the date/timestamp for 9 A.M. on the first day in the twenty-fifth year of the current century.

19-14.

“Thirty days hath September…” and if you keep singing, you’ll be reminded that January and March both have 31 days. Given that startling new information, what dates are displayed by the following code that moves a date forward by one month using ADD_MONTHS?


/* Filename on web page: lastday.sql */
DECLARE
   PROCEDURE forward_1_month (dt IN VARCHAR2) IS
   BEGIN
      DBMS_OUTPUT.PUT_LINE (
         dt || ' -> ' || ADD_MONTHS (dt, 1));
   END;
BEGIN
   forward_1_month ('30-JAN-99');
   forward_1_month ('27-FEB-99');
   forward_1_month ('31-JAN-99');
   forward_1_month ('28-FEB-99');
END;
/

Try to figure it out by walking through the code before executing the file!

19-15.

Which of the following statements accurately describe the behavior of ADD_MONTHS concerning the last day in the month (in the sentences below, ODT is the original date, and RDT is the resulting date): ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.