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

标签 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;
/

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

最佳答案

SYSDATE确实有时间成分。第一个 输出 06-DEC-18因为您的 session 参数 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;
/

关于oracle - 如何在plsql中获取当前日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53644486/

相关文章:

sql - Oracle 绑定(bind)参数占位符中允许使用哪些字符?

java - 通过 Java JDBC 使用 iBATIS 的 Oracle SQL DATE 转换问题

sql - oracle中的<< some text>>是什么

oracle - 从 PL/SQL block 运行 SCRIPT

从 Oracle 存储过程返回 XML

oracle - 相同的代码但不同的结果

oracle - 如何从 PLSQL 程序调用 shell 脚本

regex - 判断一个字符串是否只包含 ASCII 字符

oracle - ORA-00918 : Column ambiguously defined when inserting multiple rows

oracle - 为什么最后一个 PL/SQL 语句使用 dbms_assert.enquote_literal 失败?