首页 > 解决方案 > 如何使用上一列中的值插入日期

问题描述

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

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

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

标签: sql

解决方案


您可以使用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;

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

DATEADD()函数(主要)在 SQL Server 中定义。Oracle 使用更符合标准的INTERVAL算法。


推荐阅读