如何在plsql中获取当前日期时间?

时间:2018-12-06 04:03:43

标签: oracle plsql

我的代码:

DECLARE

BEGIN 

    -- outputs 06-DEC-18
    dbms_output.put_line(sysdate);  

    -- also outputs 18-DEC-06
    dbms_output.put_line(to_date(sysdate,'yyyy-mm-dd hh24:mi:ss')); 
END;
/

输出仅显示日期。我也想得到时间。

3 个答案:

答案 0 :(得分:1)

SYSDATE确实有时间成分。第一个输出 06-DEC-18是因为您会话的参数NLS_DATE_FORMAT设置为DD-MON-YY

您有这些选择。

使用TO_CHAR

dbms_output.put_line(TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'));

修改NLS_DATE_FORMAT以显示时间。

ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
BEGIN
   dbms_output.put_line(SYSDATE); 
END;
/

或者使用SYSTIMESTAMP来显示更高的时间精度(例如毫秒)。

BEGIN 
    dbms_output.put_line(SYSTIMESTAMP); 
END;
/

答案 1 :(得分:0)

要将日期类型转换为某种格式的字符串,请使用to_char

to_char(sysdate::timestamp, 'YYYY-MM-DD HH24:MI:SS')

答案 2 :(得分:0)

您可以使用SYSTIMESTAMP

SELECT SYSTIMESTAMP
FROM DUAL