CURRENT_DATE takes no arguments. It returns the current
local date as data type DATE. Argument
parentheses are not permitted. CURRENT_DATE returns
the current local date for this timezone; it adjusts for local time
variants, such as Daylight Saving Time.
CURRENT_DATE in Logical mode returns the
current local date in $HOROLOG format;
for example, 64701. CURRENT_DATE in Display mode
returns the current local date in the default format for the locale.
For example, in an American locale 02/22/2018,
in a European locale 22/02/2018, in a Russian locale 22.02.2018.
To specify a different date format, use the TO_DATE function. To change the default
date format, use the SET OPTION command with the DATE_FORMAT, YEAR_OPTION, or DATE_SEPARATOR options.
To return just the current date, use CURRENT_DATE or CURDATE. These functions return
their values in DATE data type. The CURRENT_TIMESTAMP, GETDATE and NOW functions can also be used
to return the current date and time as a TIMESTAMP data type.
Note that all InterSystems SQL time and date functions except GETUTCDATE are specific to the local
time zone setting. To get a current timestamp that is universal (independent
of time zone) you can use GETUTCDATE or the ObjectScript $ZTIMESTAMP special variable.
These data types perform differently when using embedded SQL.
The DATE data type stores values as integers in $HOROLOG format; when displayed in SQL
they are converted to date display format; when returned from embedded
SQL they are returned as integers. A TIMESTAMP data type stores and
displays its value in the same format. You can use the CONVERT function to change the datatype
of dates and times.
CURRENT_DATE can be used as a default specification
keyword in CREATE TABLE or ALTER TABLE.
The following example returns the current date, converted to
SELECT CURRENT_DATE AS Today
The following example also returns the current date, but because
this date is stored in $HOROLOG format, it is returned as an integer:
The following example shows how CURRENT_DATE can be used in a WHERE clause to return records
of people born in the last 1000 days:
SELECT Name, DOB, Age
WHERE DOB > CURRENT_DATE - 1000