Выберите диапазон дат с помощью SQL - PullRequest
0 голосов
/ 15 января 2010

Я пытаюсь выбрать диапазон дат с помощью SQL, и я столкнулся с несколькими проблемами:

Когда я запускаю что-то вроде:

SELECT ... as edate ...    
WHERE edate 
   BETWEEN To_Date('10/15/2010', 'MM/DD/YYYY') 
   AND To_Date('10/15/2011', 'MM/DD/YYYY')

вернется с

ORA-01848: недействительный месяц

. Сама таблица содержит полное значение даты вдоль строк ММ / ДД / ГГГГ ЧЧ: мм: сс. Может ли быть так, потому что я делаю редактирование SELECT, где редактирование не «отлито» как дата, которой оно не может соответствовать?

Когда я запускаю что-то вроде:

WHERE date BETWEEN '10/15/2010' AND '12/15/2011'

Он выберет правильные даты, если они попадают в диапазон с 15.10.2010 по 31.12.2010, но не в период с 01.01.2011 по 15.12.2010. Другими словами, это не будет распространяться в течение года.

Ответы [ 2 ]

2 голосов
/ 15 января 2010

Попробуй это. ГДЕ to_Date (edate, 'MM / DD / YYYY')

Я - специалист по SQL, но я думаю, что если вы конвертируете eDate, вам следует подойти.

0 голосов
/ 15 января 2010

Чтобы ответить на мой вопрос, да, чтобы сравнить яблоки с яблоками, мне нужно было

select to_date(value, 'MM/DD/YYYY HH24:MI:SS') ... as edate

, а также использовать

To_Date('10/15/2011', 'MM/DD/YYYY HH24:MI:SS')

, чтобы сделать соответствующее сравнение даты с датой.

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