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';
Другие вопросы по тегам