Oracle记录中的类型为TIMESTAMP(6),但是显示的时间毫秒位都是0,如何显示出毫秒

2013-06-26 15:37:28:000000
2013-06-26 15:37:28:000000

第1个回答  2013-06-27
SQL> select sysdate,systimestamp from dual;
SYSDATE
-------------------
SYSTIMESTAMP
---------------------------------------------------------------------------
2013-06-27 12:49:21
27-6月 -13 12.49.21.723000 下午 +08:00

SQL> insert into a values(sysdate);
已创建 1 行。
SQL> insert into a values(systimestamp);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from a;
ID
--------------------------------------------------------------------
27-6月 -13 12.45.22.000000 下午
27-6月 -13 12.50.15.511000 下午

个人猜测你插入表中的数据是按Insert into a values(sysdate);sysdate微秒都是0 最好以systimestamp插入。追问

表中显示的数据类型是TIMESTAMP

追答

我的也是
SQL> desc a;
名称 是否为空? 类型
----------------------------------------- -------- --------------------------
ID TIMESTAMP(6)

关键是要知道表里面的日期数据是怎样插进去的。是通过sysdate还是timestamp;

------------------------------------------------------------
怎么样了呢?弄清楚了吗? 你的结果是显示了毫秒,只是毫秒都为0而已。这应该是数据当时插入的问题,而不是你的查询显示的问题。