Sql 两列日期的差异,并在第三列中自动更新

Sql 两列日期的差异,并在第三列中自动更新,sql,oracle,Sql,Oracle,假设在sql中有两列名为StartDate,EndDate(2017/03/09 11:25:02,2018/08/10 15:20:03) 我需要获取持续日期列(年数,月数,天,小时,分钟,秒)应根据sql表中的StartDate和EndDate在持续时间列中自动更新。自Oracle 11g以来,您可以使用生成的列: alter table t add duration as (EndDate - StartDate); 如果这两个“日期”存储为时间戳,则会产生间隔结果。两个日期的差值是十进

假设在
sql
中有两列名为
StartDate
EndDate
2017/03/09 11:25:02
2018/08/10 15:20:03


我需要获取
持续日期
列(年数,
月数
小时
分钟
)应根据
sql
表中的
StartDate
EndDate
在持续时间列中自动更新。

自Oracle 11g以来,您可以使用生成的列:

alter table t add duration as (EndDate - StartDate);
如果这两个“日期”存储为
时间戳
,则会产生间隔结果。两个日期的差值是十进制天数


在早期版本中,您需要使用视图来完成同样的任务。

创建视图,以始终返回最新值!创建一个触发器,在更新和插入每一列时执行