我有一个时态表定义为:
CREATE TABLE [dbo].[MyTable](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](200) NOT NULL,
[Description] [varchar](100) NULL,
[CreatedOn] [datetime] NULL,
[LastUpdatedOn] [datetime] NULL,
[SysStartTime] [datetime2](7) GENERATED ALWAYS AS ROW START NOT NULL,
[SysEndTime] [datetime2](7) GENERATED ALWAYS AS ROW END NOT NULL
CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
PERIOD FOR SYSTEM_TIME ([SysStartTime], [SysEndTime])
) ON [PRIMARY]
WITH
(
SYSTEM_VERSIONING = ON ( HISTORY_TABLE = [dbo].[MyTable_History] )
)
当我尝试进行这样的查询时:
SELECT * FROM MyTable FOR SYSTEM_TIME from '2020-08-18 00:00:00' to '2020-08-18 23:59:59'
我似乎也得到了不在范围内的行。例如,
Name1 Description1 2018-07-05 22:53:36.543 2020-03-17 16:25:44.707 2020-07-22 18:21:03.9662004 9999-12-31 23:59:59.9999999
2020-07-22
不在范围内,但为什么会出现?