Oracle: выберите Миллисекунды из Типа отметки времени, который по умолчанию установлен на SYSTIMESTAMP.
У меня есть колонка с TIMESTAMP
введите в моей базе данных Oracle. default
значение столбца SYSTIMESTAMP
,
я бы хотел SELECT
миллисекунды FROM
столбец TIMESTAMP. Я использую запрос ниже без успеха:
SELECT TO_CHAR (MY_TIMESTAMP, 'dd-mm-yyyy hh24:mi:ss.FF') AS MY_TIMESTAMP
FROM MY_TABLE
-- Result: 20-12-2015 15:23:28.
Как видите, результат не имеет миллисекунд и он пустой. Если я изменю запрос с .FF4
тогда это приводит .0000
,
Как я могу выбрать столбец с миллисекундами?
1 ответ
Решение
Точность для столбцов меток времени может быть установлена с помощью
TIMESTAMP [(fractional_seconds_precision)]
,
В вашем случае для 4 это:
create table my_table
(id number,
my_TIMESTAMP timestamp(4) default SYSTIMESTAMP);
Вы можете проверить свою текущую точность:
select column_name, data_scale from user_tab_columns
where table_name = 'MY_TABLE' and column_name = 'MY_TIMESTAMP';
Вот пример в SQL Fiddle
Дисплей можно изменить с помощью:
alter session set NLS_TIMESTAMP_FORMAT = 'DD-MON-RRRR HH:MI:SS.FF9';