我似乎无法找到计算时差的解决方案,使用触发器在插入两个时间戳时自动生成持续时间到我的表中。
这是我的表'呼叫':
*BarGraph
我正在尝试使用触发器
create table call(
id varchar(5),
start_time timestamp,
end_time timestamp,
duration INTERVAL DAY(3) TO SECOND (4),
primary key(id));
我希望像这样插入可以正常工作
create sequence time_diff;
CREATE OR REPLACE TRIGGER DURATION
BEFORE INSERT ON call
for each row
BEGIN
begin select time_diff //confused and don't know what to do
END;
我的时间戳格式为'YYYY-MM-DD HH24:MI:SS';
答案 0 :(得分:1)
一些事项:首先,为什么要存储计算出的数字?违反正常形式。至少,将其设为虚拟列。其次,你不能输入这样的时间戳;使用正确的时间戳语法。 (如果你不知道它是什么,请输入" Oracle时间戳文字"在谷歌。)第三,你的问题是如何计算两个时间戳之间的差异,以秒为单位?时间戳之间的差异是"间隔天到秒&#34 ;;你可以从中提取日,小时,分钟和秒(单独),并将所有内容转换为秒。如同tsdiff := timestamp_1 - timestamp_2
,然后diff_seconds := extract (day from tsdiff) * 86400 + extract(hour from tsdiff) * 3600 + ...