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

kta*_*aro 5 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;
/
Run Code Online (Sandbox Code Playgroud)

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

Kau*_*yak 6

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'));
Run Code Online (Sandbox Code Playgroud)

修改NLS_DATE_FORMAT以显示时间。

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

或用于SYSTIMESTAMP显示更高的时间精度,如毫秒。

BEGIN 
    dbms_output.put_line(SYSTIMESTAMP); 
END;
/
Run Code Online (Sandbox Code Playgroud)