Параметр DateTime при вызове хранимой функции из кода Java - PullRequest
1 голос
/ 15 апреля 2010

Я вызываю хранимую функцию с такой подписью:

ФУНКЦИОНАЛЬНЫЕ ДОБАВЛЕНИЯ (город VARCHAR2, startDate DATE, numDays INTEGER)

из кода 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 со значением возврата времени 00:00 как время (хранимая процедура не сокращает часть времени, я проверил ее прямыми вызовами из редактора sql). Похоже, часть времени удаляется при отправке / получении формы Oracle. можно ли это исправить? Благодаря.

1 Ответ

3 голосов
/ 15 апреля 2010

java.sql.Date предназначен для хранения только даты без информации о времени. Вы должны использовать java.sql.Timestamp, setTimestamp и getTimestamp для обработки информации о дате и времени. Посмотрите также на java.sql.Time и set/getTime, если вам нужна только информация о времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...