适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统 (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 日期和时间数据类型和函数的概述,请参阅 日期和时间数据类型和函数。
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