如何在oracle时间戳中添加第二个

时间:2018-06-04 13:39:31

标签: sql oracle amazon-rds

如何在Oracle中添加带时间戳值的秒。 我试过了......

SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP+200 AS addedTime FROM dual

但是我得到了这个

2018-06-04 19:03:01 => 2018-12-21 19:03:01(加200后)

正如您所看到的,日期已经添加,但我想仅添加第二个...

这个SQL在DB2中正常运行,任何人都可以在Oracle中建议任何合适的替代方案。

2 个答案:

答案 0 :(得分:4)

您总是可以使用分数(对于Oracle 1 = 1天):

SELECT CURRENT_TIMESTAMP ,
       CURRENT_TIMESTAMP + 200 *(1/24/60/60) AS addedTime 
FROM dual;
<=>
SELECT CURRENT_TIMESTAMP + 200/86400 FROM dual

<强> DBFiddle Demo

或:

SELECT CURRENT_TIMESTAMP + INTERVAL '200' SECOND FROM dual

答案 1 :(得分:2)

在Oracle日期/时间算术中以天数表示。因此,添加200会将200天添加到Oracle DATETIMESTAMP对象中。如果要添加秒数,可以使用间隔,也可以添加小数天。就个人而言,对于像秒一样细微的东西,我更喜欢使用间隔;几小时以上的任何事情我使用常规日期算术或ADD_MONTHS()(间隔月和年特别​​危险,因为它们不是闰年安全,而ADD_MONTHS()是)。

SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP + INTERVAL '200' SECOND FROM dual;

请注意,间隔值周围的单引号是必要的; INTERVAL 200 SECOND会引发错误。

希望这有帮助。