使用add_months将日期添加到表中

时间:2012-12-18 21:34:28

标签: sql oracle insert

我正在创建一个包含雇员开始和结束日期的桌子,我正在努力寻找最简单的方法来确定这些人的结束日期。结束日期基于合同的开始日期和长度,两者都位于相同的Insert。这就是我刚刚尝试过的(我以前的尝试比这更加残酷):

Insert Into EMPHIREINFO (empno, empname, startdt, enddt, cntrlgth)
Values (7566,'JONES', to_date('2011/10/15', 'yyyy/mm/dd'),add_months(startdt,cntrlgth), 12);

我在add_months中使用了Update,因此我试图在Insert中使用它,但成功率却低得多。我认为可能是因为我在插入之前使用了cntrlgth,但即使我硬编码我要添加的月份数量,我仍然会出错。

以下是任何人感兴趣的错误:

00933. 00000 -  "SQL command not properly ended"

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

您无法在插入中引用其他列。需要为两者写表达式:

Insert Into EMPHIREINFO (empno, empname, startdt, enddt, cntrlgth)
Values (7566,'JONES', to_date('2011/10/15', 'yyyy/mm/dd'),
        add_months(to_date('2011/10/15', 'yyyy/mm/dd'),12), 12);