Sql 如何在Oracle中为日期(时间戳)添加分钟?

Sql 如何在Oracle中为日期(时间戳)添加分钟?,sql,oracle,date,datetime,Sql,Oracle,Date,Datetime,我创建了以下表格: 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

我创建了以下表格:

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)
);
SELECT code, "DATE" + minutes * INTERVAL '1' MINUTE
FROM travel
    JOIN extras ON code = 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中的分钟数添加到旅行日期表中

例如,工作台行程应为:

2016年1月10日15:30+50分钟

2016年2月15日17:45+123分钟

2016年4月1日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语句:

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)
);
SELECT code, "DATE" + minutes * INTERVAL '1' MINUTE
FROM travel
    JOIN extras ON code = code_extra;


顺便说一句,您不应该使用日期之类的保留字作为列名,这就是我用双引号将其括起来的原因。您可以创建如下表:

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语句:

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)
);
SELECT code, "DATE" + minutes * INTERVAL '1' MINUTE
FROM travel
    JOIN extras ON code = code_extra;


顺便说一句,你不应该使用日期之类的保留字作为列名,这就是我用双引号括起来的原因

你试过:+interval'50'分钟吗?@GordonLinoff谢谢你的评论你试过:+interval'50'分钟吗?@GordonLinoff谢谢你的评论问题似乎是如何在其他表。感谢您的回答:问题似乎是如何将分钟添加到其他表中的时间戳值。感谢您的回答: