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
一段时间后,您会发现自己已经记住了这样的数字。 :-)
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
一段时间后,您会发现自己已经记住了这样的数字。 :-)