Oracle:从时间戳类型中选择默认值为SYSTIMESTAMP的毫秒数

时间:2015-12-20 12:23:12

标签: oracle oracle11g timestamp milliseconds systimestamp

我的Oracle数据库中有一个TIMESTAMP类型的列。 default列值为SYSTIMESTAMP

我希望TIMESTAMP列SELECT 毫秒 FROM。我使用下面的查询但没有成功:

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 个答案:

答案 0 :(得分: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';