Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Oracle数据库插入中保留毫秒_Java_Oracle - Fatal编程技术网

Java 在Oracle数据库插入中保留毫秒

Java 在Oracle数据库插入中保留毫秒,java,oracle,Java,Oracle,我正在尝试使用Java在Oracle表中插入一条记录。该字段被定义为时间戳 我使用了一种新的方法来表达以下声明: INSERT INTO MYTAB (UNIQUE_ID, CREATED_AT) VALUES ('137', ?)"; PreparedStatement updatePerf = connection.prepareStatement(updateString); updatePerf.setTimestamp(1,getCurrentTimeStamp

我正在尝试使用Java在Oracle表中插入一条记录。该字段被定义为时间戳

我使用了一种新的方法来表达以下声明:

    INSERT INTO MYTAB (UNIQUE_ID, CREATED_AT) VALUES ('137', ?)";
    PreparedStatement updatePerf = connection.prepareStatement(updateString);
    updatePerf.setTimestamp(1,getCurrentTimeStamp());
getCurrentTimeStamp如下所示:

    private static java.sql.Timestamp getCurrentTimeStamp() {
        long time = System.currentTimeMillis();
        java.sql.Timestamp timestamp = new java.sql.Timestamp(time);
        System.out.println("Time in milliseconds :" + timestamp);
        return timestamp;
   }
当程序运行时,我仍然使用毫秒打印正确的时间戳:

    Time in milliseconds :2014-05-13 15:40:03.076
但是在数据库上,我只看到

    '137',2014-05-13 15:40:03
我想拼命地保留这一切

当你说“在数据库上,我只看到”时,你是如何从Oracle获取数据的?您是否预先设置了NLS_时间戳? 尝试设置:

NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF'
SQL*Plus
中,然后尝试查询,看看是否可以看到thw毫秒组件

或者,您可以将带有
的时间戳列格式化为\u char()
函数:

select to_char(my_timestamp_col,'YYYY-MM-DD HH:MI:SS.FF') from my_table;

另外,请注意,如果您的列是带有时区的时间戳,则需要设置
NLS\u TIMETAMP\u TZ\u格式。

类型是
timestamp
还是
timestamp(0)
?MYTAB表是如何定义的,您是否有可以发布的创建表?MYTAB.CREATED\u AT
是什么类型?如果它只是一个Oracle
日期
,则只能精确到
秒。