Date/Time Functions

Date arithmetic, described in the previous section, does not provide all the functionality you need when working with datetime values, so PL/SQL also implements a number of helpful, built-in datetime functions. You’ve already read about built-in conversion functions such as TO_DATE and NUMTOYMINTERVAL in previous sections. Table 10-5 briefly describes the other date-related functions at your disposal.

Warning

Avoid using Oracle’s traditional DATE functions with the new timestamp types. Instead, use the new interval functionality whenever possible. Use DATE functions only with DATE values.

Many of the functions in the table accept DATE values as inputs. ADD_MONTHS is an example of one such function. You must be careful when you consider using such functions to operate on any of the new TIMESTAMP datatypes. While you can pass a TIMESTAMP type to one of these functions, Oracle implicitly converts that type to a DATE. Only then does the function perform its operation. As a result of this implicit conversion, fractional seconds and any time zone information will be lost. The result type from such functions will be of type DATE. For example, if you pass a TIMESTAMP WITH TIME ZONE to ADD_MONTHS, you will get back a DATE without any time zone information and without any fractional seconds. Be careful!

Table 10-5. Built-in date functions

Name

Description

ADD_MONTHS

Adds a specified number of months to a date.

CURRENT_DATE

Returns the current date and time as a ...

Get Oracle PL/SQL Programming, Third Edition 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.