Есть бд, не получается сформировать запрос.
В таблице есть поле следующего содержания: `10-08-2016`
Хотелось бы сделать выборку по кварталам. В данном случае - выборка за 9 месяцев.
Использую запрос:
SELECT * FROM users.data WHERE date_sp LIKE "%-_[1-9]-%"
следуя логике - должен вывести запись с датой `10-08-2016`. Но к сожалению, возвращает пустой результат.
На всякий случай.
LIKE не умеет в диапазон допустимых значений, зато умеет REGEXP. И хотя в данном случае более правильным вариантом будет использование STR_TO_DATE, но в некоторых схожих случая такое невозможно.
Вариант решения проблемы с REGEXP:
SELECT * FROM users.data WHERE date_sp REGEXP "^(\d{2})-0[1-9]-(\d{4})$"
да, я бы так и сделал, но есть одно НО. поле - типа varchar, база уже была готова ранее и надо прикрутить к ней отчеты. :( приходится извращаться чтобы прикрутить.