适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric 中的 SQL 分析终结点
Microsoft Fabric 中的仓库
Microsoft Fabric 中的 SQL 数据库
返回包含计算机的日期和时间的 datetime2 值,SQL Server 的实例正在该计算机上运行。 日期和时间作为 UTC 时间(通用协调时间)返回。 秒部分精度规范的范围为 1 至 7 位。 默认精度为 7 位数。
注意
SYSDATETIME
并且 SYSUTCDATETIME
具有比 GETDATE
和更多的 GETUTCDATE
小数秒精度。
SYSDATETIMEOFFSET
包括系统时区偏移量。
SYSDATETIME
, SYSUTCDATETIME
并且可以 SYSDATETIMEOFFSET
分配给任一日期和时间类型的变量。
有关所有 Transact-SQL 日期和时间数据类型和函数的概述,请参阅日期和时间数据类型和函数(Transact-SQL)。
语法
SYSUTCDATETIME ( )
返回类型
datetime2
注解
Transact-SQL 语句可以引用 SYSUTCDATETIME
它们可引用 datetime2 表达式的任何位置。
SYSUTCDATETIME
是一个不确定函数。 不能对在列中引用该函数的视图和表达式建立索引。
注意
SQL Server 使用 GetSystemTimeAsFileTime()
Windows API 获取日期和时间值。 精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本。 此 API 的精度固定为 100 纳秒。 可以使用 Windows API 来确定 GetSystemTimeAdjustment()
准确性。
示例
以下示例使用六个返回当前日期和时间的 SQL Server 系统函数来返回日期和/或时间。 这些值是连续返回的;因此,它们的秒小数部分可能有所不同。
答: 显示日期和时间函数返回的格式
下面的示例显示由日期和时间函数返回的其他格式。
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. 将日期和时间转换为日期
以下示例演示如何将日期和时间值转换为 日期 数据类型。
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