共用方式為


SYSUTCDATETIME (Transact-SQL)

傳回 datetime2 値,此值包含其上執行 SQL Server 執行個體之電腦的日期和時間。日期和時間是以國際標準時間 (Coordinated Universal Time,UTC) 傳回。毫秒的有效位數規格範圍介於 1 至 7 位數之間。預設有效位數是 7 位數。

[!附註]

SYSDATETIME 和 SYSUTCDATE 比 GETDATE 和 GETUTCDATE 具有更多小數秒數有效位數。SYSDATETIMEOFFSET 包含系統時區位移。SYSDATETIME、SYSUTCDATE 和 SYSDATETIMEOFFSET 可指派給任何日期和時間類型的變數。

如需所有 Transact-SQL 日期和時間資料類型與函數的概觀,請參閱<日期和時間資料類型與函數>。如需日期和時間資料類型與函數通用的資訊和範例,請參閱<使用日期和時間資料>。

主題連結圖示Transact-SQL 語法慣例

語法

SYSUTCDATETIME ( )

傳回類型

datetime2

備註

只要是 Transact-SQL 陳述式可以參考 datetime2 運算式的任何位置,它們就可以參考 SYSUTCDATETIME。

SYSUTCDATETIME 是不具決定性的函數。在資料行中參考這個函數的檢視表和運算式無法編製索引。

[!附註]

SQL Server 2008 會使用 GetSystemTimeAsFileTime() Windows API 來取得日期和時間値。精確度取決於執行 SQL Server 執行個體的電腦硬體和 Windows 版本。此 API 的精確度是固定於 100 奈秒。精確度可藉由使用 GetSystemTimeAdjustment() Windows API 來判斷。

範例

下列範例會使用六個可傳回目前日期和時間的 SQL Server 系統函數來傳回日期、時間或這兩者。由於這些值會依序傳回,因此其小數秒數可能會不同。

A. 顯示日期和時間函數所傳回的格式

下列範例示範日期和時間函數所傳回的不同格式。

SELECT SYSDATETIME() AS SYSDATETIME
    ,SYSDATETIMEOFFSET() AS SYSDATETIMEOFFSET
    ,SYSUTCDATETIME() AS SYSUTCDATETIME
    ,CURRENT_TIMESTAMP AS CURRENT_TIMESTAMP
    ,GETDATE() AS GETDATE
    ,GETUTCDATE() AS GETUTCDATE;

以下為結果集:

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. 將日期和時間轉換成日期

下列範例示範如何將日期和時間値轉換成 date。

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

以下為結果集:

2007-04-30

2007-04-30

2007-04-30

2007-04-30

2007-04-30

2007-04-30

C. 將日期和時間值轉換成時間

下列範例示範如何將日期和時間値轉換成 time。

SELECT CONVERT (time, SYSDATETIME()) AS SYSDATETIME()
    ,CONVERT (time, SYSDATETIMEOFFSET()) AS SYSDATETIMEOFFSET()
    ,CONVERT (time, SYSUTCDATETIME()) AS SYSUTCDATETIME()
    ,CONVERT (time, CURRENT_TIMESTAMP) AS CURRENT_TIMESTAMP
    ,CONVERT (time, GETDATE()) AS GETDATE()
    ,CONVERT (time, GETUTCDATE()) AS GETUTCDATE();

以下為結果集:

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