oracle函数current_timestamp
创建一个微秒分辨率的时间戳,即6位十进制数字:
> select current_timestamp from dual;
2018-04-26 13:20:07.253909
我如何(使用纯SQL或PL / SQL)将此转换为毫秒分辨率,只有3位十进制数,并将其存储在时间戳字段中:
2018-04-26 13:20:07.253
答案 0 :(得分:2)
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') FROM dual;
或强>
SELECT CAST(CURRENT_TIMESTAMP AS TIMESTAMP(3)) FROM dual;
<强>输出强>
TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DDHH24:MI:SS.FF3')
-----------------------------------------------------
2018-04-26 13:26:16.642
答案 1 :(得分:2)
我认为正确的转换将是
SELECT
CAST(CURRENT_TIMESTAMP AS TIMESTAMP(3))
FROM dual;
TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3')
会返回STRING
但不会返回TIMESTAMP
,即对于INTERVAL
操作等进一步处理,您必须将其转换回TIMESTAMP
。< / p>