我的代码:
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;
/
输出仅显示日期。我也想得到时间。
答案 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