Oracle中的默认毫秒数为0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中的默认毫秒数为0相关的知识,希望对你有一定的参考价值。
我在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查询表。
答案
您的TIMESTAMP
值没有任何格式。您拥有的只是默认显示格式 - 由当前用户NLS_TIMESTAMP_FORMAT
设置定义。
试试这个:
CAST(Local_time AS TIMESTAMP(0))
如果你想截断毫秒,但仍然可以使用它们
CAST(CAST(Local_time AS TIMESTAMP(0)) AS TIMESTAMP(6))
另一答案
也许是这样的事情?
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>
以上是关于Oracle中的默认毫秒数为0的主要内容,如果未能解决你的问题,请参考以下文章