【问题标题】:java.sql.BatchUpdateException: ORA-01849: hour must be between 1 and 12java.sql.BatchUpdateException: ORA-01849: 小时必须在 1 到 12 之间
【发布时间】:2020-03-06 16:05:51
【问题描述】:

我正在尝试使用 JdbcTemplate 将当前时间戳存储在 Oracle 数据库中。 我试图在两列中存储时间戳,但一列是 VARCHAR,一列是 TIMESTAMP,但是查看异常我无法找出它抛出错误的哪一列,最好的部分是我的本地机器没有出现这样的错误,但是当我将代码部署到更高的环境时,我遇到了这样的问题。

查询-

 String query = "insert into IP_CO_WR2_USR.customer_info "
            + "(EVENT_ID,COMM_CODE,customer_id,REG_ACCOUNT"
            + ",DFMSTATEMENTFLAG,ENVIRONMENT,STATUS,"
            + "INSERT_TIMESTAMP,INSERTED_BY,UPDATE_TIMESTAMP,MODELLINKDATE,"
            + "OCCURANCE_TIMESTAMP,COMM_SOURCE,REPORTENDDATE,MODELID,UAN,BENCHMARKID,"
            + "COUNTER,DFMUAN,RUNTYPE,GENERATED_EVENT_ID)"
            + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; 

数据插入逻辑

        coJdbcTemplate.batchUpdate(query, new BatchPreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps, int i) throws SQLException {
                CustomerInfo tranMessage = batch.get(i);
                ps.setString(8, new SimpleDateFormat("dd-MMM-yy HH.mm.ss")
                        .format(new Date()));
                ps.setString(9, StringConstants.TMTriggerManager);
                ps.setString(10, new SimpleDateFormat("dd-MMM-yy HH.mm.ss")
                        .format(new Date()));

            }

            public int getBatchSize() {
                return batch.size();
            }
        });

【问题讨论】:

    标签: java oracle jdbctemplate


    【解决方案1】:

    您在 SimpleDateFormat 中使用了错误的格式

    ps.setString(8, new SimpleDateFormat("dd-MMM-yy HH.mm.ss").format(new Date()));

    你需要使用:

    ps.setString(8, new SimpleDateFormat("dd-MMM-yy hh.mm.ss").format(new Date()));

    大写的“HH”将小时数设置在 1 到 24 之间。“hh”解决了这个问题。

    您可以在 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html 中查看有关 SimpleDateFormat 的文档

    您可能已经允许在本地数据库和服务器编号中处理 0 到 24 之间的小时数。另一种选择是在该数据库中更改它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      相关资源
      最近更新 更多