Как узнать текущую дату и время в plsql? - PullRequest
0 голосов
/ 06 декабря 2018

Мой код:

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 голосов
/ 06 декабря 2018

SYSDATE имеет компонент времени.Первый выводит 06-DEC-18, поскольку для параметра сеанса NLS_DATE_FORMAT установлено значение DD-MON-YY.

. У вас есть эти опции.

use 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;
/
0 голосов
/ 06 декабря 2018

Вы можете использовать SYSTIMESTAMP

SELECT SYSTIMESTAMP
FROM DUAL
0 голосов
/ 06 декабря 2018

Чтобы преобразовать тип даты в строку с некоторым форматом, используйте to_char

to_char(sysdate::timestamp, 'YYYY-MM-DD HH24:MI:SS')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...