Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

SYSDATETIME (Transact-SQL)

Applies to: 👁 Image
SQL Server 👁 Image
Azure SQL Database 👁 Image
Azure SQL Managed Instance 👁 Image
Azure Synapse Analytics 👁 Image
Analytics Platform System (PDW) 👁 Image
SQL analytics endpoint in Microsoft Fabric 👁 Image
Warehouse in Microsoft Fabric 👁 Image
SQL database in Microsoft Fabric

Returns a datetime2(7) value that contains the date and time of the computer on which the instance of SQL Server is running.

Note

SYSDATETIME and SYSUTCDATETIME have more fractional seconds precision than GETDATE and GETUTCDATE. SYSDATETIMEOFFSET includes the system time zone offset. SYSDATETIME, SYSUTCDATETIME, and SYSDATETIMEOFFSET can be assigned to a variable of any of the date and time types.

Azure SQL Database (with the exception of Azure SQL Managed Instance) and Azure Synapse Analytics follow UTC. Use AT TIME ZONE in Azure SQL Database or Azure Synapse Analytics if you need to interpret date and time information in a non-UTC time zone.

For an overview of all Transact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

👁 Image
Transact-SQL syntax conventions

Syntax

SYSDATETIME ( ) 

Return Type

datetime2(7)

Remarks

Transact-SQL statements can refer to SYSDATETIME anywhere they can refer to a datetime2(7) expression.

SYSDATETIME is a nondeterministic function. Views and expressions that reference this function in a column cannot be indexed.

Note

SQL Server obtains the date and time values by using the GetSystemTimeAsFileTime() Windows API. The accuracy depends on the computer hardware and version of Windows on which the instance of SQL Server is running. The precision of this API is fixed at 100 nanoseconds. The accuracy can be determined by using the GetSystemTimeAdjustment() Windows API.

Examples

The following examples use the six SQL Server system functions that return current date and time to return the date, time or both. The values are returned in series; therefore, their fractional seconds might be different.

A. Getting the current system date and time

SELECT SYSDATETIME() 
 ,SYSDATETIMEOFFSET() 
 ,SYSUTCDATETIME() 
 ,CURRENT_TIMESTAMP 
 ,GETDATE() 
 ,GETUTCDATE(); 
/* Returned: 
SYSDATETIME() 2007-04-30 13:10:02.0474381 
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00 
SYSUTCDATETIME() 2007-04-30 20:10:02.0474381 
CURRENT_TIMESTAMP 2007-04-30 13:10:02.047 
GETDATE() 2007-04-30 13:10:02.047 
GETUTCDATE() 2007-04-30 20:10:02.047 
*/

B. Getting the current system date

SELECT CONVERT (date, SYSDATETIME()) 
 ,CONVERT (date, SYSDATETIMEOFFSET()) 
 ,CONVERT (date, SYSUTCDATETIME()) 
 ,CONVERT (date, CURRENT_TIMESTAMP) 
 ,CONVERT (date, GETDATE()) 
 ,CONVERT (date, GETUTCDATE()); 
 
/* All returned 2007-04-30 */ 

C. Getting the current system time

SELECT CONVERT (time, SYSDATETIME()) 
 ,CONVERT (time, SYSDATETIMEOFFSET()) 
 ,CONVERT (time, SYSUTCDATETIME()) 
 ,CONVERT (time, CURRENT_TIMESTAMP) 
 ,CONVERT (time, GETDATE()) 
 ,CONVERT (time, GETUTCDATE()); 
 
/* Returned 
SYSDATETIME() 13:18:45.3490361 
SYSDATETIMEOFFSET()13:18:45.3490361 
SYSUTCDATETIME() 20:18:45.3490361 
CURRENT_TIMESTAMP 13:18:45.3470000 
GETDATE() 13:18:45.3470000 
GETUTCDATE() 20:18:45.3470000 
*/ 

Examples: Azure Synapse Analytics and Analytics Platform System (PDW)

D: Getting the current system date and time

SELECT SYSDATETIME(); 

Here's the result set.

-------------------------- 
7/20/2013 2:49:59 PM

See Also

CAST and CONVERT (Transact-SQL)
Date and Time Data Types and Functions (Transact-SQL)


Feedback

Was this page helpful?

Additional resources