我在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来查询表。
答案 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>