The SYSTIMESTAMP function in Oracle SQL is the high-precision version of SYSDATE. It returns the exact current date, time (including fractional seconds), and time zone of the operating system where the database server is located.
The key feature of this function is its data type: it returns a TIMESTAMP WITH TIME ZONE value, which is the most complete and precise "current time" function available.
What is the SYSTIMESTAMP Function in Oracle?
The SYSTIMESTAMP function returns the server's exact system time. This is different from other time functions:
SYSDATE: Returns the server's time as aDATEtype. This includes date and time but has no fractional seconds or time zone information.- CURRENT_TIMESTAMP: Returns the time of your session as a
TIMESTAMP WITH TIME ZONE. If you are in New York connecting to a server in London,SYSTIMESTAMPwill return London time, andCURRENT_TIMESTAMPwill return New York time. - LOCALTIMESTAMP: Returns the time of your session as a
TIMESTAMP(with no time zone).
SYSTIMESTAMP is best when you need to log an event with the highest possible precision, stamped with the server's local time zone.
SYSTIMESTAMP Function Syntax
The syntax for SYSTIMESTAMP is one of the simplest, as it takes no arguments:
SYSTIMESTAMP
Oracle SYSTIMESTAMP Function Examples
Here are two practical examples of how to use SYSTIMESTAMP.
Example 1: Getting the Server's High-Precision Time with SYSTIMESTAMP
This example shows the default output of the function. It returns the full date, the time (down to 6 fractional seconds), and the server's time zone offset.
Query:
SELECT
SYSTIMESTAMP
FROM DUAL;
Result: (Your result will be different, but will follow this format)
SYSTIMESTAMP
---------------------------------------------------------------------------
07-NOV-25 08.23.45.123456 AM -08:00
Example 2: Converting SYSTIMESTAMP to Another Time Zone
A common use of SYSTIMESTAMP is to get the server's time and then immediately convert it to a standard time zone, like UTC, for consistent storage.
You can do this using the AT TIME ZONE clause.
Query:
-- This gets the server's current time and converts it to UTC
SELECT
SYSTIMESTAMP AT TIME ZONE 'UTC' AS "UTC_Time"
FROM DUAL;
Result: (Assuming the server time from Example 1, which was -08:00)
UTC_Time
---------------------------------------------------------------------------
07-NOV-25 04.23.45.123456 PM UTC
Notice how the time has been adjusted from 8:23 AM to 4:23 PM to reflect the conversion to UTC.
