如何使用上一列中的值插入日期

时间:2019-06-01 09:56:27

标签: sql

如何使用上一列中的值添加天数

CREATE TABLE rent (
    date of first rent DATE NOT NULL,
    date of 2nd rent   DATE NOT NULL,
);

INSERT INTO rent VALUES(
  TO_DATE('2011-02-11 16:00:00', 'YYYY-MM-DD HH24:MI:SS'),
  DATEADD(day,7,'2011-02-11 16:00:00')
);

我希望它能写下来 首次租金的日期为2011-02-11 16:00:00,并且 第二次租金的日期为2011-02-18

但这不是选择上一列,而是将日期添加到已知值。

2 个答案:

答案 0 :(得分:1)

您可以使用 test('Email check BehaviorSubject', () { expectLater(userProfileEditBloc.email, emitsInOrder([ emits(anything), // current email if you want to check for that emitsError('Enter a valid email'),\ // emitsDone // in case you also close the stream with the error ])); userProfilEditBloc.changeEmail('testtest'); //Expected @ });

insert . . . select

请注意,这列出了要插入的列。这是避免不必要的错误的最佳实践。

INSERT INTO rent (date1, date2) SELECT date1, date1 + interval '7' day FROM (SELECT TO_DATE('2011-02-11 16:00:00', 'YYYY-MM-DD HH24:MI:SS') as date1 FROM dual ) x; 函数(主要)在SQL Server中定义。 Oracle使用更符合标准的DATEADD()算法。

答案 1 :(得分:0)

您无法访问INSERT中的另一列,因为它不包含任何内容

要添加7天

INSERT INTO rent VALUES (
  TO_DATE('2011-02-11 16:00:00', 'YYYY-MM-DD HH24:MI:SS'),
  TO_DATE('2011-02-11 16:00:00', 'YYYY-MM-DD HH24:MI:SS') + 7)

要添加7个月

INSERT INTO rent VALUES (
   TO_DATE('2011-02-11 16:00:00', 'YYYY-MM-DD HH24:MI:SS'),
   TO_DATE('2011-02-11 16:00:00', 'YYYY-MM-DD HH24:MI:SS') + interval '7' month)

如果您还想存储时间,则不应使用DATE作为列类型