Oracle - как урезать метку времени до миллисекунд - PullRequest
0 голосов
/ 26 апреля 2018

Функция оракула current_timestamp создает метку времени с микросекундным разрешением, то есть 6 десятичных цифр:

> select current_timestamp from dual;

2018-04-26 13:20:07.253909

Как я могу (используя чистый SQL или PL / SQL) преобразовать это в разрешение в миллисекундах только с 3 десятичными цифрами и сохранить его в поле отметки времени:

2018-04-26 13:20:07.253

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Я думаю, что правильное преобразование будет

SELECT
    CAST(CURRENT_TIMESTAMP AS TIMESTAMP(3))
FROM dual;

TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') возвращает STRING, но не TIMESTAMP, т. Е. Для дальнейшей обработки, например INTERVAL операций, вам придется преобразовать ее обратно в TIMESTAMP.

0 голосов
/ 26 апреля 2018
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') FROM dual;

OR

SELECT CAST(CURRENT_TIMESTAMP AS TIMESTAMP(3)) FROM dual;

выход

TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DDHH24:MI:SS.FF3')
-----------------------------------------------------
2018-04-26 13:26:16.642
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...