Oracle SQL - 尝试将一秒添加到我从文本字段中提取的日期

Oracle SQL - Trying to Add One Second to a Date I'm pulling from a text field

SQL这里是新手。

在 Oracle BI Publisher 中,我使用 Oracle SQL 执行以下操作。

我只需要从字符串中提取时间并将时间加一秒。 'Flight' 列中的数据如下所示:

Dayton 01:23:59

我只使用以下语法提取时间:

substr(Flight,length(Flight)-8,8)

这给了我这个:

01:23:59

在下面的混乱代码中,我试图在有效时间上增加一秒,但第二个是“60”,这显然是无效时间。

 substr(lpad(to_number(replace(substr(Flight,length(Flight)-15,9),':')+2,'999999'),6,'0'),1,2)||':'||substr(lpad(to_number(replace(substr(Flight,length(Flight)-15,9),':')+2,'999999'),6,'0'),3,2)||':'||substr(lpad(to_number(replace(substr(Flight,length(Flight)-15,9),':')+2,'999999'),6,'0'),5,2)

有什么更好的方法来做到这一点吗?

你能做类似的事情吗:

 to_date(substr(Flight,length(Flight)-8,8), HH:MI:SS') + interval '1' second

您也可以使用

TO_DATE(SUBSTR(FLIGHT, LENGTH(FLIGHT-8)), 'HH24:MI:SS') + 1 / (24 * 60 * 60)

TO_DATE(SUBSTR(FLIGHT, LENGTH(FLIGHT-8)), 'HH24:MI:SS') + 1 / 86400

因为

   24 = hours in a day
 * 60 = minutes in an hour
 * 60 = seconds in a minute
-----
86400 = seconds in a day

一段时间后,您会发现自己已经记住了这样的数字。 :-)