ID START_DATE ADD_DAYS NEW_DATE
------------------------------------------
1 02/02/2017 5
2 06/24/2017 3
3 07/14/2017 9
4 05/19/2017 12
我有下表,我想进入并使用从表本身读取的数据更新NEW_DATE列。我正在努力理解正确的MS SQL来实现这一目标。有帮助吗?
答案 0 :(得分:3)
UPDATE MYTABLE SET NEW_DATE = DATEADD(day, ADD_DAYS, START_DATE)
如果您需要使用条件更新行,您可以执行以下操作:
UPDATE MYTABLE SET NEW_DATE = DATEADD(day, ADD_DAYS, START_DATE)
WHERE ID < 10
答案 1 :(得分:0)
如果您可以控制架构,则可能需要将此NEW_DATE
列添加为计算列。
ALTER TABLE table_name ADD NEW_DATE as DATEADD(DAY,ADD_DAYS,START_DATE)
这样您就不需要更新任何内容,并且会自动重新计算对add_days或start_date的任何更改