gpt4 book ai didi

java - Oracle 日期的无效年份异常

转载 作者:行者123 更新时间:2023-12-02 04:39:46 31 4
gpt4 key购买 nike

我正在尝试将日期保存到我的 Oracle 数据库中。

    long startTime = System.nanoTime();
java.sql.Date startTimeDisplay = new Date(startTime);

PreparedStatement st;
String sql = "INSERT INTO J0T_JOB_STATUS (JST_JOB_ID, JST_JOB_CONFIGURATION_ID, JST_STATUS_CD, JST_START_TM, JST_END_TM, JST_CURR_STEP, JST_STEP_DETAILS, JST_MSG_COLLECTION) "
+ "VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
st.setDate(4, startTimeDisplay);

这在我们使用 HSQL 而不是 Oracle 的 JUnit 测试套件中运行得很好,但是当使用 Oracle 时我得到:

    [err] Exception in thread "Thread-15" 
[err] java.lang.IllegalArgumentException: Invalid year value
[err] at oracle.sql.TIMESTAMP.getOracleYear(TIMESTAMP.java:772)
[err] at oracle.sql.DATE.toBytes(DATE.java:533)
[err] at oracle.sql.DATE.<init>(DATE.java:121)
[err] at oracle.jdbc.driver.OraclePreparedStatement.setDate(OraclePreparedStatement.java:8747)
[err] at oracle.jdbc.driver.OraclePreparedStatementWrapper.setDate(OraclePreparedStatementWrapper.java:177)
[err] at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.setDate(WSJdbcPreparedStatement.java:1333)
etc.

表定义:

desc J0T_JOB_STATUS
Name Null Type
------------------------ ---- ------------
JST_JOB_ID VARCHAR2(50)
JST_JOB_CONFIGURATION_ID NUMBER
JST_STATUS_CD VARCHAR2(30)
JST_START_TM TIMESTAMP(6)
JST_END_TM TIMESTAMP(6)
JST_CURR_STEP NUMBER
JST_STEP_DETAILS CLOB
JST_MSG_COLLECTION CLOB

最佳答案

根据Java文档关于System.nanoTime()(我假设是Java7,因为你没有提供你的java版本):

This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative)

链接:https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime()

我建议使用System.currentTimeMillis(),除非您想最终保留负数。

关于java - Oracle 日期的无效年份异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30304957/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com