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谢谢你的评论问题似乎是如何在其他表。感谢您的回答:问题似乎是如何将分钟添加到其他表中的时间戳值。感谢您的回答: