以下查询在DB2中有效。但是,当我在Oracle中尝试此操作时,它会返回错误:"无效的标识符"。以下是我的发言:
SELECT TO_DATE(20150709||' '||TIME(CURRENT_TIMESTAMP), 'YYYYMMDD HH24MISS') FROM DUAL
如何让它在Oracle中运行?
答案 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
数据类型。