如何在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中建议任何合适的替代方案。
答案 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 DATE
或TIMESTAMP
对象中。如果要添加秒数,可以使用间隔,也可以添加小数天。就个人而言,对于像秒一样细微的东西,我更喜欢使用间隔;几小时以上的任何事情我使用常规日期算术或ADD_MONTHS()
(间隔月和年特别危险,因为它们不是闰年安全,而ADD_MONTHS()
是)。
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP + INTERVAL '200' SECOND FROM dual;
请注意,间隔值周围的单引号是必要的; INTERVAL 200 SECOND
会引发错误。
希望这有帮助。