如何在间隔中添加分和秒

ozxc1zmp  于 2021-08-09  发布在  Java
关注(0)|答案(3)|浏览(272)

我有以下几点: trunc(sysdate - 1) + interval '8' hour 我怎样才能在这个时间间隔上加上分和秒呢?

of1yzvn4

of1yzvn41#

使用 HOUR TO SECOND 而不仅仅是 HOUR :

SELECT TRUNC( SYSDATE - 1 ) + INTERVAL '8:12:34' HOUR TO SECOND
FROM   DUAL;

输出:

| TRUNC(SYSDATE-1)+INTERVAL'8:12:34'HOURTOSECOND |
| :--------------------------------------------- |
| 2020-06-08 08:12:34                            |

db<>在这里摆弄

qhhrdooz

qhhrdooz2#

您可以尝试以下方法:

select cast(trunc(sysdate - 1) as timestamp) + interval '8' hour + interval '40' minute + interval '20' second from dual;

您当前正在使用sysdate。在上面的例子中,我将其转换为timestamp。然后,再加上8小时。然后,加上分和秒。
例子:https://dbfiddle.uk/?rdbms=oracle_18&fiddle=76a640ecfb4b59cfbac628511d2accd3

3okqufwl

3okqufwl3#

有时,更容易采用老式方法:

select trunc(sysdate - 1) + (8 / 24 + 30 / (24 * 60) + 5 / (24 * 60 * 60))

或者用一个区间和算术来表示:

trunc(sysdate - 1) + (8 * 60 * 60 + 30 * 60 + 17) * interval '1' second

复合区间有一个语法;我发现甲骨文的版本很难记住。

相关问题