我有一个现有表我想添加一个计算列
[dbo].[Route]
...
[EstimatedArrival] TIME (7) NOT NULL,
[DriveSeconds] INT NOT NULL,
[WaitSeconds] INT NOT NULL,
...
但是当我尝试添加TIME
下面的计算列时
ALTER TABLE [dbo].[Route]
ADD [EstimatedDeparture] AS
CONVERT (TIME (7), DATEADD(SECOND,
(((DATEPART(HOUR, [EstimatedArrival]) * 3600)
+ (DATEPART(MINUTE, [EstimatedArrival]) * 60)
+ DATEPART(SECOND, [EstimatedArrival]))
- [DriveSeconds] - [WaitSeconds]), ''), 114)
PERSISTED;
它抛出
无法保留表“Route”中的计算列“EstimatedDeparture”,因为该列是不确定的。
为什么?我认为CONVERT(TIME (7) ...)
应该保证列类型为TIME
请注意,如果我在查询中使用此 Convert 表达式,它可以正常工作。我该如何解决这个问题?