Oracle:Select 与 SYSTIMESTAMP 默认的时间戳类型的毫秒数
Oracle: Select Milliseconds from Timestamp Type that Defaults with SYSTIMESTAMP
我的 Oracle 数据库中有一个包含 TIMESTAMP
类型的列。 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
.
我怎样才能SELECT有毫秒的列?
时间戳列的精度可以通过
设置
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';
我的 Oracle 数据库中有一个包含 TIMESTAMP
类型的列。 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
.
我怎样才能SELECT有毫秒的列?
时间戳列的精度可以通过
设置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';