SQL Server计算列公式中的DateDiff()语法错误

问题描述 投票:1回答:1
UPDATE tblInventoryOrders
SET tblInventoryOrders.Remaining_Arrival_WorkDays = DateDiff(Day,[Ordered_Date],[Estimated_Arrival_Date]);

Column data Type
Remaining_Arrival_WorkDays int
Ordered_Date datetime
Estimated_Arrival_Date datetime

我试图在sql server计算列公式部分中添加上述查询,但在保存公式时继续显示错误。然而,运行查询本身工作正常。任何建议将不胜感激。

datediff
1个回答
1
投票

计算列是表定义的一部分,因此您需要一个alter table语句,例如:

alter table tblInventoryOrders
add [Remaining_Arrival_WorkDays] as (DateDiff(Day,[Ordered_Date],[Estimated_Arrival_Date]))

SQL Fiddle

MS SQL Server 2014架构设置:

CREATE TABLE tblInventoryOrders
    ([Ordered_Date] datetime, [Estimated_Arrival_Date] datetime)
;

INSERT INTO tblInventoryOrders
    ([Ordered_Date], [Estimated_Arrival_Date])
VALUES
    ('2017-01-01 00:00:00', '2017-02-01 00:00:00')
;

alter table tblInventoryOrders
add [Remaining_Arrival_WorkDays] as (DateDiff(Day,[Ordered_Date],[Estimated_Arrival_Date]))

查询1:

select * from tblInventoryOrders

Results

|         Ordered_Date | Estimated_Arrival_Date | Remaining_Arrival_WorkDays |
|----------------------|------------------------|----------------------------|
| 2017-01-01T00:00:00Z |   2017-02-01T00:00:00Z |                         31 |
© www.soinside.com 2019 - 2024. All rights reserved.