Добрый день.
Имеем базу данных, к которой прикручен VIEWS.
В базе данных есть поле "Дата продажи".
Хотим, чтобы наша ВЬЮШка выбирала из БД только те записи, у которых дата продажи БОЛЬШЕ чем ТЕКУЩАЯ ДАТА.
Казалось, чего легче: создаем критерий фильтра, указываем что SALE_DATE > NOW() и НЕ РАСКРЫВАЕМ фильтр для пользователя.
Всеми остальными фильтрами и сортировками пользователь может играться. Но они будут работать только по НЕПРОДАННЫМ позициям.
Заходим в настройку критерия фильтра по SALE_DATE. И что видим:
- РАВНО
- НЕ РАВНО
- СОДЕРЖИТ
- СОДЕРЖИТ ЛЮБОЕ СЛОВО
- НАЧИНАЕТСЯ...
- ЗАКАНЧИВАЕТСЯ...
- ДЛИНА КОРОЧЕ
- ДЛИНА НЕ КОРОЧЕ
- ПУСТОЕ
- Не ПУСТОЕ
- ....
Блин, а как поставить "математику" в виде БОЛЬШЕ\МЕНЬШЕ ?
попробовал поставить "ДЛИНА КОТОРОГО БОЛЕЕ", а в ЗНАЧЕНИИ - NOW()
и что мы видим в запросе :
AND (LENGTH(_db.sale_date) > 'now()') ))
Вот блин приплыли. Наверное для таких случаев все должно быть очень просто, но что-то как-то сложновато...
Не подскажете?
Спасибо.
Комментарии
Для SALE_DATE пропишите другой хендлер (если нужна «математика» то это views_handler_filter_numeric, а если конкретно для даты, то views_handler_filter_date). Если сейчас вам показывает РАВНО / НЕ РАВНО / СОДЕРЖИТ и т.д., то у вас скорее всего указан views_handler_filter_string, его и надо изменить.
Благодарю. Скорее всего вы говорите про именно то, что мне нужно !
Только, скажите пожалуйста, где я могу видеть\менять эти views_handler'ы для каждого поля?
Спасибо.
Вопрос закрыт.
Написан свой фильтр по образцу:
http://xandeadx.ru/blog/drupal/403