选择当前时间戳时,Oracle中的标识符无效

时间:2015-07-09 12:15:32

标签: oracle timestamp db2

以下查询在DB2中有效。但是,当我在Oracle中尝试此操作时,它会返回错误:"无效的标识符"。以下是我的发言:

SELECT TO_DATE(20150709||' '||TIME(CURRENT_TIMESTAMP), 'YYYYMMDD HH24MISS')  FROM DUAL

如何让它在Oracle中运行?

2 个答案:

答案 0 :(得分:1)

select to_date('08/07/2015 ' || to_char(sysdate,'hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss')
from dual

答案 1 :(得分:0)

TIME不是oracle中有效的内置函数。您需要使用TO_CHAR将时间部分作为字符串拉出或使用其他机制添加时间组件。

SELECT TO_DATE( 20150709||' '||TO_CHAR(CURRENT_TIMESTAMP, 'HH24MISS')
              , 'YYYYMMDD HH24MISS')
  FROM DUAL;

这是使用日期算术的另一种方法:

SELECT TO_DATE(20150709, 'YYYYMMDD')
     + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP))
FROM DUAL;

通过从未截断的时间戳中减去截断的CURRENT_TIMESTAMP,您可以获得可以在日期和时间戳中添加或减去的INTERVAL数据类型。