SYSUTCDATETIME (Transact-SQL)

返回包含计算机的日期和时间的 datetime2 值,SQL Server 的实例正在该计算机上运行。日期和时间作为 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。

DECLARE @DATETIME DATETIME = GetDate();

DECLARE @TIME TIME

SELECT @TIME = CONVERT(time, @DATETIME)

SELECT @TIME AS 'Time', @DATETIME AS 'Date Time'

下面是结果集:

Time Date Time

13:49:33.6330000 2009-04-22 13:49:33.633