我把這樣的簽名存儲功能:日期時間參數
功能ADDDAYS(市VARCHAR2, 的startDate DATE,NUMDAYS整數)
從Java代碼:
JdbcTemplate jt = getJdbcTemplate();
Object o = jt.execute("{? = call ADDDAYS(?, ?, ?)}", new CallableStatementCallback() {
public Object doInCallableStatement(CallableStatement stmt) throws SQLException, DataAccessException {
stmt.registerOutParameter(1, Types.DATE);
stmt.setString(2, city);
stmt.setDate(3, new java.sql.Date(startDate.getTime()));
stmt.setInt(4, daysNum);
stmt.execute();
return new Date(stmt.getDate(1).getTime());
}
});
當我通過startDate與時間返回值contais 00:00作爲時間(存儲過程不削減時間部分,我檢查它w直接從sql編輯器調用)。 所以看起來像時間部分在發送到/接收表格Oracle中被刪除。 是否可以修復它? 謝謝。
我希望你意識到'ADDDAYS'函數正在重新發明車輪;在Oracle'DATE'或'TIMESTAMP'中添加一個數字可以將該天數(或其部分)添加到它。 – 2010-04-15 19:57:51
這不僅僅是將N天添加到指定的日期,它將針對不同的城市使用工作日日曆。如果我只需要將N天添加到當前日期,爲什麼我需要將城市參數傳遞給此函數。 – dbf 2010-04-16 09:13:08