我有一個現有的表,我想添加一個計算列爲什麼CONVERT(TIME(7),expression)不確定?
[dbo].[Route]
...
[EstimatedArrival] TIME (7) NOT NULL,
[DriveSeconds] INT NOT NULL,
[WaitSeconds] INT NOT NULL,
...
但是,當我嘗試添加下面
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;
它拋出
計算列的
TIME
計算列表'Route'中的'EstimatedDeparture'不能保持,因爲該列是非確定性的。
爲什麼?我認爲CONVERT(TIME (7) ...)
應保證列類型爲TIME
請注意,如果我在查詢中使用此轉換表達式,它工作正常。 我該如何解決這個問題?
@HABO事實證明,有*是*在有一個字符串格式(注意'「」'),和114不似乎與這個問題有關。 –