Sql server 2012 如何使用select语句中给出日期差的值更新表的单个列?

Sql server 2012 如何使用select语句中给出日期差的值更新表的单个列?,sql-server-2012,sql-update,sql-insert,datediff,Sql Server 2012,Sql Update,Sql Insert,Datediff,我想用来自以下查询的值更新表的一列。 选择DATEDIFF(天、'EndDate'、'StartDate')作为DiffDate。 我可以在一个sql语句中执行此操作吗?现在,我有一个表,其中列(StartDate、EndDate、DiffDate)的值是StartDate和EndDate,而不是DiffDate。DiffDate现在为空。我正在尝试将DiffDate的值从null更新为日期差。 我感谢你的帮助。谢谢。谢谢。我尝试了这个查询,但是我的表有很多记录,这个查询给了我一个错误,它说设置

我想用来自以下查询的值更新表的一列。 选择DATEDIFF(天、'EndDate'、'StartDate')作为DiffDate。 我可以在一个sql语句中执行此操作吗?现在,我有一个表,其中列(StartDate、EndDate、DiffDate)的值是StartDate和EndDate,而不是DiffDate。DiffDate现在为空。我正在尝试将DiffDate的值从null更新为日期差。
我感谢你的帮助。谢谢。

谢谢。我尝试了这个查询,但是我的表有很多记录,这个查询给了我一个错误,它说设置的值不是唯一的,可能是因为DiffDate有多行。我必须更新所有日期不同的记录,包括开始日期和结束日期。请使用表定义更新您的问题(Sql Server Management Studio->对象资源管理器->右键单击您的表->脚本表as=>创建到->剪贴板)我正在执行类似的操作,更新。。。。set DiffDate=选择DATEDIFF(天、结束日期、开始日期)。我只是意识到我不需要在查询中添加select。现在可以了。非常感谢。
update TheNameOfYourTable
set DiffDate = DATEDIFF(days, EndDate, StartDate)