select to_char(sysdate,'yyyymmdd-hh24mi-ssss') from dual

解决方案 »

  1.   


    [Q]怎么样从数据库中获得毫秒
    [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