0
Может быть, этим вопросом немая один или неоднократной один, но я не получить точную answe для этогоразница Даты в оракуле
У меня есть таблица, которая имеет столбец формата дата (eff_date), я хочу, чтобы данные, где разница между Sysdate андой eff_date более чем за два года и равен два года
Я использую этот запрос я знаю его синтаксический неправильно
select *
from Customer
where (select floor(months_between(sysdate,eff_date)/12)
from Customer t) >= 2
Okay спасибо за ответ. что вы подразумеваете под индексом ..? Я первый, кого вы предложили, а второй - дает разные результаты. Я думаю, что сначала правильный ответ. Я попробовал один ответ. Исправьте, если я ошибаюсь .. 'select * from (выберите t. *, Floor (months_between (sysdate, eff_date)/12) как date_diff от клиента t), где date_diff> = 2' – aravind
@aravind - Извините, я забыл изменить оператор '> ='. Исправлен второй ответ. Индекс представляет собой структуру в базе данных, целью которой является сделать запросы более эффективными, позволяя запросам искать определенные строки в «O (log N)», а не читать каждую строку в таблице, которая является «O (n)». Если в 'eff_date' есть индекс, первый запрос не сможет его использовать, ему нужно будет отсканировать всю таблицу. Второй запрос может использовать индекс в зависимости от вашего распределения данных. –
Wow спасибо, первый из них работает хорошо. Еще один вопрос будет какой-либо проблемой, если какой-либо год является високосным годом? – aravind