Oracle中的默认毫秒数为0

时间:2017-12-20 18:55:11

标签: oracle timestamp milliseconds

我在Oracle中有一个时间戳列,格式为' MM / DD / YYYY HH24:MI.SxFF6'。 数据如下所示:

>=

我需要时间戳来保留值,除了获得需要默认为000000的毫秒数。 我试过了查询 -

11/09/1917 10:45:28.230000
10/19/2014 18:09:28.410000
12/19/2011 11:06:28.340000

但它抛出错误 - cast(to_char(Local_time, 'MM/DD/YYYY HH24:MI:SS') as timestamp(6))

有没有人对我可以尝试将毫秒数变为0的任何想法。我使用Toad来查询表。

2 个答案:

答案 0 :(得分:0)

您的TIMESTAMP值没有任何格式。您拥有的只是默认的显示格式 - 由当前用户NLS_TIMESTAMP_FORMAT设置定义。

试试这个:

CAST(Local_time AS TIMESTAMP(0))

如果你想截断毫秒,但仍然可以使用

CAST(CAST(Local_time AS TIMESTAMP(0)) AS TIMESTAMP(6))

答案 1 :(得分:0)

也许是这样的事情?

SQL> create table test (col timestamp, result timestamp);

Table created.

SQL> insert into test (col) values (to_timestamp('11/09/1917 15:45:28.230000', 'MM/DD/YYYY HH24:MI:SS.FF6'));

1 row created.

SQL> update test set result = cast(col as date);

1 row updated.

SQL> select * From test;

COL                       RESULT
------------------------- -------------------------
09.11.17 15:45:28,230000  09.11.17 15:45:28,000000

SQL>