How to Get the Current Date in Oracle
Last updated August 25, 2026 · By the SaturnSQL team
SYSDATE returns the database server's current date and time. CURRENT_DATE adjusts for the session time zone, which matters when client and server differ.
SELECT SYSDATE, CURRENT_DATE, SYSTIMESTAMP FROM dual;Server time vs. session time
SYSDATE always reflects the operating system clock of the database server, regardless of who is connected or what time zone their session is in. CURRENT_DATE and CURRENT_TIMESTAMP instead reflect the SESSIONTIMEZONE, which a client can change with ALTER SESSION SET TIME_ZONE. If your application server and database server sit in different time zones, SYSDATE and CURRENT_DATE can return different clock times for the same instant, and code that assumes they are interchangeable will misbehave around timezone boundaries.
ALTER SESSION SET TIME_ZONE = 'America/New_York';
SELECT SYSDATE, CURRENT_DATE FROM dual; -- CURRENT_DATE shifts, SYSDATE does notSYSTIMESTAMP returns a TIMESTAMP WITH TIME ZONE at the server's time zone offset, including fractional seconds, which SYSDATE cannot represent since DATE has only second precision. For logging or auditing where sub-second precision or an explicit UTC offset matters, use SYSTIMESTAMP (or its UTC equivalent, SYS_EXTRACT_UTC(SYSTIMESTAMP)) rather than SYSDATE.
Run this in SaturnSQL
SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.
Try it free