SYSUTCDATETIME (Transact-SQL)
返回包含计算机的日期和时间的 datetime2 值,SQL Server 的实例正在该计算机上运行。日期和时间作为 UTC 时间(通用协调时间)返回。秒部分精度规范的范围为 1 至 7 位。默认精度为 7 位数。
注意 |
---|
SYSDATETIME 和 SYSUTCDATE 在秒的小数部分精度上要比 GETDATE 和 GETUTCDATE 高。SYSDATETIMEOFFSET 包含系统时区偏移量。SYSDATETIME、SYSUTCDATE 和 SYSDATETIMEOFFSET 可分配给任何一种日期和时间类型的变量。 |
有关所有 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