我创建了以下表格:
create table travel
(
code VARCHAR2(3),
date timestamp,
constraint pk_code_travel primary key(code)
);
create table extras
(
code_extra VARCHAR2(3),
code_travel VARCHAR2(3),
minutes NUMBER(3),
constraint pk_code_extra primary key(code_extra)
);
我插入了以下日期:
insert into travel (code, date)
values('T01',TO_TIMESTAMP('10/01/2016 15:30','DD/MM/YYYY HH24:MI'));
insert into travel (code, date)
values('T02',TO_TIMESTAMP('15/02/2016 17:45','DD/MM/YYYY HH24:MI'));
insert into travel (code, date)
values('T03',TO_TIMESTAMP('01/04/2016 22:00','DD/MM/YYYY HH24:MI'));
insert into extras (code_extra, code_travel, minutes)
values('E01', 'T01', 50);
insert into extras (code_extra, minutes)
values('E02', 'T02', 123);
insert into extras (code_extra, minutes)
values('E03', 'T03', 48);
问题是:如何将表“ extras”中的分钟数添加到“ travel”表中的日期?
例如,表“ travel”应为:
T01',2016年10月1日15:30 + 50分钟。
T02',15/02/2016 17:45 + 123'分钟。
T03',01/04/2016 22:00 + 48分钟。
所有帮助将不胜感激。
您可以创建一个表,如下所示:
create table extras
(
code_extra VARCHAR2(3),
code_travel VARCHAR2(3),
minutes INTERVAL DAY TO SECOND(0),
constraint pk_code_extra primary key(code_extra)
);
然后,您可以通过以下方法之一插入间隔值:
INSERT INTO extras (code_extra, code_travel, minutes)
VALUES('E01', 'T01', INTERVAL '50' MINUTE);
INSERT INTO extras (code_extra, minutes)
VALUES('E02', 'T02', 123 * INTERVAL '1' MINUTE);
INSERT INTO extras (code_extra, minutes)
VALUES('E03', 'T03', NUMTODSINTERVAL(48, 'MINUTE'));
或作为现有表中的选择语句:
SELECT code, "DATE" + minutes * INTERVAL '1' MINUTE
FROM travel
JOIN extras ON code = code_extra;
或者
SELECT code, "DATE" + NUMTODSINTERVAL(minutes, MINUTE)
FROM travel
JOIN extras ON code = code_extra;
顺便说一句,您不应使用诸如DATE
列名之类的保留词(这就是我用双引号将其括起来的原因)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句