java - 在 Oracle DB 插入中保留毫秒

标签 java oracle

我正在尝试使用 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_TIMESTAMP吗? 尝试设置:

NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF'

SQL*Plus中,然后尝试查询,看看是否可以看到毫秒组件。

或者,您可以使用 to_char() 函数格式化时间戳列:

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

另请注意,如果您的列是带时区的时间戳,则需要设置 NLS_TIMETAMP_TZ_FORMAT

关于java - 在 Oracle DB 插入中保留毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23641370/

相关文章:

mysql - 使用 ESCAPE 关键字进行 SQL 转义 - 如果转义字符出现在 LIKE 值中会怎样

sql - 获取 SQL XML 标记以显示 NULL 值

oracle - 使用 Nhibernate 3.2 将 Oracle 日期映射到 DateTime

Java ExecutorService - 任务/可调用不取消/中断

database - 如何在列上创建约束,以便需要在列中输入值?

java - maven - 两个不同的根 pom

Java URI 不会对路径中的分号进行编码。最佳实践在这里?

oracle - 如何从SAP ABAP系统中提取数据?

java - 在 Java 中用于价格格式化的 DecimalFormat

java - 如何从 TextField 获取输入?