适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric中的SQL分析端点
Microsoft Fabric中的仓库
Microsoft Fabric中的SQL数据库
SYSDATETIME Transact-SQL(T-SQL)函数返回一个datetime2(7)值,其中包含SQL Server实例运行的计算机的日期和时间。
注意
SYSDATETIME 并且 SYSUTCDATETIME 具有比 GETDATE 和更多的 GETUTCDATE小数秒精度。
SYSDATETIMEOFFSET 包括系统时区偏移量。
SYSDATETIME, SYSUTCDATETIME, 可以 SYSDATETIMEOFFSET 分配给任意日期和时间类型的变量。
Azure Synapse Analytics follow UTC. 如果你需要在非UTC时区解读日期和时间信息,可以在Azure Synapse Analytics中使用AT时区。
注意
Azure SQL 数据库 和 Microsoft Fabric 中的 SQL 数据库支持将默认时区从通用协调时间(UTC)更改。 如果你在 数据库 或 会话 层面修改时区,这个函数会根据配置的时区值返回本地时间。 更多信息请参见 ALTER DATABASE SCOPED CONFIGURATION 和 SET 时区。
有关所有 Transact-SQL 日期和时间数据类型和函数的概述,请参阅 日期和时间数据类型和函数 。
语法
SYSDATETIME ( )
返回类型
datetime2(7)
备注
Transact-SQL 语句可以指 SYSDATETIME 代任何可以指向 datetime2(7) 表达式的地方。
SYSDATETIME 是一个不确定函数。 你不能在列中索引引用该函数的视图和表达式。
注意
SQL Server通过GetSystemTimeAsFileTime() Windows API获取日期和时间值。 精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本。 此 API 的精度固定为 100 纳秒。 你可以使用 GetSystemTimeAdjustment() Windows API 来确定准确度。
示例
以下示例使用六个返回当前日期和时间的 SQL Server 系统函数来返回日期和/或时间。 这些值是连续返回的;因此,它们的秒小数部分可能有所不同。
在这些例子中,假设当前日期是2026年4月30日。
A. 获取当前系统日期和时间
SELECT SYSDATETIME(),
SYSDATETIMEOFFSET(),
SYSUTCDATETIME(),
CURRENT_TIMESTAMP,
GETDATE(),
GETUTCDATE(),
CURRENT_DATE;
结果集如下。
SYSDATETIME() 2026-09-01 16:15:37.7418724
SYSDATETIMEOFFSET() 2026-09-01 16:15:37.7418724 -06:00
SYSUTCDATETIME() 2026-09-01 22:15:37.7418724
CURRENT_TIMESTAMP 2026-09-01 16:15:37.740
GETDATE() 2026-09-01 16:15:37.740
GETUTCDATE() 2026-09-01 22:15:37.740
CURRENT_DATE 2026-09-01
B. 获取当前系统日期
以下示例演示如何将日期和时间值转换为 日期 数据类型。
SELECT CONVERT (DATE, SYSDATETIME()),
CONVERT (DATE, SYSDATETIMEOFFSET()),
CONVERT (DATE, SYSUTCDATETIME()),
CONVERT (DATE, CURRENT_TIMESTAMP),
CONVERT (DATE, GETDATE()),
CONVERT (DATE, GETUTCDATE()),
CURRENT_DATE;
结果集如下。
SYSDATETIME() 2026-09-01
SYSDATETIMEOFFSET() 2026-09-01
SYSUTCDATETIME() 2026-09-01
CURRENT_TIMESTAMP 2026-09-01
GETDATE() 2026-09-01
GETUTCDATE() 2026-09-01
CURRENT_DATE 2026-09-01
C. 获取当前系统时间
SELECT CONVERT (TIME, SYSDATETIME()),
CONVERT (TIME, SYSDATETIMEOFFSET()),
CONVERT (TIME, SYSUTCDATETIME()),
CONVERT (TIME, CURRENT_TIMESTAMP),
CONVERT (TIME, GETDATE()),
CONVERT (TIME, GETUTCDATE());
结果集如下。
SYSDATETIME() 16:15:37.7418724
SYSDATETIMEOFFSET() 16:15:37.7418724
SYSUTCDATETIME() 22:15:37.7418724
CURRENT_TIMESTAMP 16:15:37.740
GETDATE() 16:15:37.740
GETUTCDATE() 22:15:37.740
示例:Azure Synapse Analytics
D. 获取当前系统日期和时间
SELECT SYSDATETIME();
结果集如下。
--------------------------
4/30/2026 1:10:02 PM