In Oracle Database, the SYSDATE
function returns the current date and time set for the operating system on which the database server resides.
The returned value is of type DATE
.
Syntax
The syntax goes like this:
SYSDATE
So, no arguments are required (or accepted), and there are no parentheses.
Example
Here’s an example:
SELECT SYSDATE
FROM DUAL;
Result:
06/AUG/21
This example displays the date based on the value of my system’s NLS_DATE_FORMAT
parameter (which is currently DD/MON/RR
). We can change this parameter, or use a function like TO_CHAR()
to return the result in a different format.
Example:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
Result:
2021-08-06
Calling SYSDATE
with Parentheses
As mentioned, the SYSDATE
function is called without parentheses.
Here’s what happens when we call it with parentheses:
SELECT SYSDATE()
FROM DUAL;
Result:
Error starting at line : 1 in command - SELECT SYSDATE() FROM DUAL Error at Command Line : 1 Column : 15 Error report - SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause: *Action:
Fixing the SYSDATE
Return Value
The FIXED_DATE
initialization parameter enables you to set a constant date and time that SYSDATE
will always return instead of the current date and time.
This can assist in testing situations when you need the same input data to produce the same result consistently.
See Oracle’s documentation for FIXED_DATE
and also initialization parameters in general for more information.