时态表中的日期函数

iPh*_*Guy 7 sql t-sql sql-server-2016 temporal-tables

从 SQL Server 2016 开始,可以自动创建时态表。我想创建一个简单的查询来检索指定日期的数据。但是,当我尝试像这样在查询中指定日期时,它会出现语法错误:

SELECT * FROM Person FOR SYSTEM_TIME AS OF GETDATE()
Run Code Online (Sandbox Code Playgroud)

我什至尝试将数据类型转换为 datetime2,因为日期是这样存储的,但它仍然不起作用:

SELECT * FROM Person FOR SYSTEM_TIME AS OF CONVERT(datetime2,GETDATE())
Run Code Online (Sandbox Code Playgroud)

出现此问题,但是当我第一次执行SELECT GETDATE()然后复制文本并将其粘贴到查询中时,它工作正常。如何使用 AS OF 关键字指定日期时间?

提前致谢。

Rig*_*iri 6

尝试这个:

DECLARE @Date DATETIME2 = GETUTCDATE()

SELECT * 
FROM Person
FOR SYSTEM_TIME AS OF @Date
Run Code Online (Sandbox Code Playgroud)

另外,请查看本文以获取查询时态表的更多示例。