Oracle中的默认毫秒数为0

问题描述 投票:0回答:2

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

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

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

cast(to_char(Local_time, 'MM/DD/YYYY HH24:MI:SS') as timestamp(6))

但它正在抛出错误 - "Not valid month"

有没有人对我可以尝试获得毫秒到0的任何想法。我使用Toad查询表。

oracle timestamp milliseconds
2个回答
0
投票

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

试试这个:

CAST(Local_time AS TIMESTAMP(0))

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

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

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>
© www.soinside.com 2019 - 2024. All rights reserved.