适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
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 日期和时间数据类型和函数的概述,请参阅 日期和时间数据类型和函数。
Syntax
SYSUTCDATETIME ( )
返回类型
datetime2
Remarks
Transact-SQL 语句可以引用 SYSUTCDATETIME 它们可引用 datetime2 表达式的任何位置。
SYSUTCDATETIME 是一个不确定函数。 无法为列中引用此函数的视图和表达式编制索引。
Note
SQL Server 使用 GetSystemTimeAsFileTime() Windows API 获取日期和时间值。 精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本。 此 API 的精度固定为 100 纳秒。 可以使用 Windows API 来确定 GetSystemTimeAdjustment() 准确性。
Examples
以下示例使用六个返回当前日期和时间的 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() 2025-10-20 13:10:02.0474381
SYSDATETIMEOFFSET() 2025-10-20 13:10:02.0474381 -07:00
SYSUTCDATETIME() 2025-10-20 20:10:02.0474381
CURRENT_TIMESTAMP 2025-10-20 13:10:02.047
GETDATE() 2025-10-20 13:10:02.047
GETUTCDATE() 2025-10-20 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());
结果集如下。
2025-10-20
2025-10-20
2025-10-20
2025-10-20
2025-10-20
2025-10-20
C. 将日期和时间值转换为时间
以下示例演示如何将日期和时间值转换为 时间 数据类型。
DECLARE @DATETIME AS DATETIME = GetDate();
DECLARE @TIME AS TIME;
SELECT @TIME = CONVERT (TIME, @DATETIME);
SELECT @TIME AS 'Time',
@DATETIME AS 'Date Time';
结果集如下。
Time Date Time
13:49:33.6330000 2025-10-20 13:49:33.633