#oracle #jsp
#Oracle #jsp
Вопрос:
Вот мой запрос,
select count(*) from " table1 " where
latitude = '" selectedlat "' and
longitude = '" selectedlong "' and
observation_date between TO_DATE('" selectedobstime "','mm/dd/yyyy hh24:mi:ss') AND
TO_DATE('" selectedobstime "','mm/dd/yyyy hh24:mi:ss')
Когда я выполняю этот запрос на странице jsp, его отображение нечислового символа было найдено там, где ожидалось числовое значение.
Комментарии:
1. Для чего это фактическое значение
selectedobstime
? Что бы это ни было, оно, похоже, не соответствует указанному вами формату. И почему вы ищете между двумя копиями одного и того же значения?2. каковы ваши значения для переменных?
3. И каков тип данных latitude и logitute
4. типы данных широты и долготы являются числовыми
5. тип данных latitude и logitute — это число
Ответ №1:
Если ваше фактическое значение для selectedobstime
равно, как вы, кажется, предлагаете в комментарии, '2001-08-20 AM 11:43:00'
то это не в формате mm/dd/yyyy hh24:mi:ss
.
Вам нужно будет использовать модель формата, например:
TO_DATE('" selectedobstime "','yyyy-mm-dd AM hh:mi:ss')
Необходим индикатор AM / PM, и для часовой части вам нужен 12-часовой, HH
а не 24-часовой HH24
. Подробнее об элементах формата даты / времени.
Комментарии:
1. @Sony — Я не смогу вам помочь, если вы не сообщите нам, каково ваше фактическое значение, полученное из JSP. Кто-то вводит значение? Если да, то что именно они вводят?
2. @Sony — этот сайт работает не так. Для вопроса требуется соответствующая информация. Важная вещь, которую вы не показали, — это фактическое строковое значение .
3. Нам нужно фактическое значение
selectedobstime
строки. Вы пытаетесь преобразовать это в дату, чтобы соответствовать столбцу таблицы. Это нормально. Но маска формата, которую вы используете,to_date()
должна соответствовать фактическому строковому значению, которое вы пытаетесь преобразовать.4. 2001-08-20 AM 11:43:00