怎么样从数据库中获得毫秒 
[A]9i以上版本,有一个timestamp类型获得毫秒,如 
SQL>select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1, 
to_char(current_timestamp) time2 from dual; TIME1 TIME2 
----------------------------- ---------------------------------------------------------------- 
2003-10-24 10:48:45.656000 24-OCT-03 10.48.45.656000 AM +08:00 
可以看到,毫秒在to_char中对应的是FF。 
8i以上版本可以创建一个如下的java函数 
SQL>create or replace and compile 
java source 
named "MyTimestamp" 
as 
import java.lang.String; 
import java.sql.Timestamp; public class MyTimestamp 

public static String getTimestamp() 
   { 
     return(new Timestamp(System.currentTimeMillis())).toString(); 
   } 
}; 
SQL>java created. 
注:注意java的语法,注意大小写 
SQL>create or replace function my_timestamp return varchar2 
as language java 
name 'MyTimestamp.getTimestamp() return java.lang.String'; 

SQL>function created. 
SQL>select my_timestamp,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') ORACLE_TIME from dual; 
MY_TIMESTAMP ORACLE_TIME 
------------------------ ------------------- 
2003-03-17 19:15:59.688 2003-03-17 19:15:59 
如果只想获得1/100秒(hsecs),还可以利用dbms_utility.get_time ------------------------------------------------------------
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff1') from dual;
...
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff9') from dual;select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual=select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ssxff') from dual

解决方案 »

  1.   

    在这种情况下可以查询到相关的数据,但将毫秒插入到DATE里面如果用ff好象不能成功!
    具体如何实现插入,还希望各位大侠悉心教教小弟啊!
      

  2.   

    insert into FLASHDATA2003 values (to_timestamp('2003-4-1 07:12:12.436123','yyyy-mm-dd hh24:mi:ssxff'),111.111)
      

  3.   

    drabit(square)兄,非常感谢,我已经实现了毫秒的写入.但为什么写查询语句又看不到毫秒字段呢?
    执行下面的语句可以看到毫秒字段
    select to_char( systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1  from FLASHDATA2003
    但执行下面我自己的写入毫秒字段的数据项,又没办法看到毫秒字段!
    select to_char( "YANFANG"."FLASHDATA2003"."DATETIME",'yyyy-mm-dd hh24:mi:ssxff') time1 from FLASHDATA2003 WHERE "YANFANG"."FLASHDATA2003"."ID"=2
    不知道这是为什么啊?
    小弟愚笨,还希望能有机会向大侠学习啊!
      

  4.   

    date类型的字段无法存放毫秒,使用timestamp类型的字段
      

  5.   

    drabit(square)兄,为什么我不能在表字段的设计中显式的定义timestamp类型,也就是看不到这个字段类型的选项?
      

  6.   

    你用的什么工具?
    直接用sql 建表试一下:
    create table test_1(col1 timestamp);
      

  7.   

    非常感谢,可以通过SQL语句来生成一个带有timestamp字段类型的表了.
    具体如何往里面写入数据,我还需要试试看.