Я получаю следующую ошибку при запросе оракула ниже. Я не вижу проблемы с форматом, который я даю в запросе. Я думаю, что это может иметь отношение к .SSS, но я не уверен:
SELECT
*
FROM
(
SELECT
*
FROM
comprater_requests
WHERE
spname =?
AND effectivedate >= TO_DATE(?,'yyyy-MM-dd HH:mi:ss.SSS')
AND effectivedate <= TO_DATE(?,'yyyy-MM-dd HH:mi:ss.SSS')
)
WHERE
ROWNUM <= 100
Ошибка:
ORA-01810: format code appears twice
Параметры:
Parameters: [Google, 2018-07-24 00:00:00.000, 2018-09-06 00:00:00.000]
Таблица:
CREATE TABLE COMPRATER_REQUESTS
(
ID NUMBER DEFAULT COMP_RATER_SEQ.NEXTVAL PRIMARY KEY,
TRANSACTIONID VARCHAR2(20 BYTE) NOT NULL,
QUOTE CLOB,
ARCHIVEXML CLOB,
ADDITIONALINFO CLOB,
QUOTEID VARCHAR2(20 BYTE),
AGENTID CHAR(50 BYTE),
EFFECTIVEDATE DATE
);
Пользователь выбирает две даты из пользовательского интерфейса, который отправляется на внутренний код в следующем формате: «Tue Sep 04 00:00:00 EDT 2018», но в базе данных Oracle есть даты, сохраненные как «2018-09-04». 00: 00: 00,0. Поэтому я попытался преобразовать дату, которую они выбрали, в этот формат, выполнив:
dateFormat = new SimpleDateFormat(CompRaterPropertiesML.ACORD_DB_DATE_FORMAT)
fromDateFormat = dateFormat.format(selectedDate1)
toDateFormat = dateFormat.format(selectedDate2)
Это преобразует его в формат, который мне нужен, но теперь это строка, которая, как мне кажется, вызывает у меня проблему.