在我下面的示例语法中,我希望该字段delayed
是天数之间的差异gotitdate
,dunitdate
我知道这种语法会得到结果,我打算将其设置为OnInsert()
触发器,AfterUpdate()
但是我的两个字段不是必需的!我无法更改表结构以使它们成为必需的。
手头的问题,我如何使用此更新语法来说明空日期,如果任一字段为空则更新为 0 或DateDiff()
如果两个字段均不为空则更新为 ?和往常一样,如果这种方法有更好的方法,我愿意接受建议:
Create Table #Moofasa
(
gotitdate date
,dunitdate date
,delayed int
)
Insert Into #Moofasa (gotitdate, dunitdate) Values
('07/01/2016','07/05/2016')
,('07/01/2016','07/04/2016')
,('07/04/2016','07/08/2016')
Update #Moofasa
Set delayed = DateDiff(d, gotitdate, dunitdate)
WHERE delayed is null
Select * from #Moofasa
--Drop Table #Moofasa
计算列可以解决这个问题,并且可能比使用触发器更好:
测试于:rextester.com:
给出: