Click to Rate and Give Feedback
MSDN
MSDN Library
SQL Server
SQL Server 2008
Database Engine
Technical Reference
 GETUTCDATE (Transact-SQL)
Community Content
In this section
Statistics Annotations (2)
Collapse All/Expand All Collapse All
Other versions are also available for the following:
SQL Server 2008 Books Online (October 2009)
GETUTCDATE (Transact-SQL)

Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running.

ms178635.note(en-us,SQL.100).gifNote:
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.

For an overview of all Transact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL). For information and examples that are common to date and time data types and functions, see Using Date and Time Data.

Topic link icon Transact-SQL Syntax Conventions

GETUTCDATE()

datetime

Transact-SQL statements can refer to GETUTCDATE anywhere they can refer to a datetime expression.

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

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()      ', SYSDATETIME();
SELECT 'SYSDATETIMEOFFSET()', SYSDATETIMEOFFSET();
SELECT 'SYSUTCDATETIME()   ', SYSUTCDATETIME();
SELECT 'CURRENT_TIMESTAMP  ', CURRENT_TIMESTAMP;
SELECT 'GETDATE()          ', GETDATE();
SELECT 'GETUTCDATE()       ', GETUTCDATE();
/* Returned:
SYSDATETIME()            2007-05-03 18:34:11.9351421
SYSDATETIMEOFFSET()      2007-05-03 18:34:11.9351421 -07:00
SYSUTCDATETIME()         2007-05-04 01:34:11.9351421
CURRENT_TIMESTAMP        2007-05-03 18:34:11.933
GETDATE()                2007-05-03 18:34:11.933
GETUTCDATE()             2007-05-04 01:34:11.933
*/

B. Getting the current system date

SELECT 'SYSDATETIME()      ', CONVERT (date, SYSDATETIME());
SELECT 'SYSDATETIMEOFFSET()', CONVERT (date, SYSDATETIMEOFFSET());
SELECT 'SYSUTCDATETIME()   ', CONVERT (date, SYSUTCDATETIME());
SELECT 'CURRENT_TIMESTAMP  ', CONVERT (date, CURRENT_TIMESTAMP);
SELECT 'GETDATE()          ', CONVERT (date, GETDATE());
SELECT 'GETUTCDATE()       ', CONVERT (date, GETUTCDATE());

/* Returned: 
SYSDATETIME()            2007-05-03
SYSDATETIMEOFFSET()      2007-05-03
SYSUTCDATETIME()         2007-05-04
CURRENT_TIMESTAMP        2007-05-03
GETDATE()                2007-05-03
GETUTCDATE()             2007-05-04
*/

C. Getting the current system time

SELECT 'SYSDATETIME()      ', CONVERT (time, SYSDATETIME());
SELECT 'SYSDATETIMEOFFSET()', CONVERT (time, SYSDATETIMEOFFSET());
SELECT 'SYSUTCDATETIME()   ', CONVERT (time, SYSUTCDATETIME());
SELECT 'CURRENT_TIMESTAMP  ', CONVERT (time, CURRENT_TIMESTAMP);
SELECT 'GETDATE()          ', CONVERT (time, GETDATE());
SELECT 'GETUTCDATE()       ', CONVERT (time, GETUTCDATE());
/* Returned
SYSDATETIME()            18:25:01.6958841
SYSDATETIMEOFFSET()      18:25:01.6958841
SYSUTCDATETIME()         01:25:01.6958841
CURRENT_TIMESTAMP        18:25:01.6930000
GETDATE()                18:25:01.6930000
GETUTCDATE()             01:25:01.6930000
*/
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Date and Time are new system types in SQL 2008      Constantijn Enders ... steampunk   |   Edit   |   Show History

SYSDATETIME(), SYSDATETIMEOFFSET(), and SYSUTCDATETIME() don't work for SQL 2005. The examples above for conversion to the date or time data types doesn't work, as SQL 2005 only knows datetime. To get only the date portion of the current date, for example, you would have to perform some sort of mathematical calculation on the datetime value:

  

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)

Date Range Enumeration Function      Jeff Fischer ... Thomas Lee   |   Edit   |   Show History

Refer to my blog for SQL Server date range enumeration table valued function sql date range function.

Jeff Fischer

Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement | Site Feedback
Page view tracker