Varchar ngày là xấu và chúng không phải là ngày thực, giải pháp tốt nhất là sử dụng các kiểu dữ liệu ngày gốc của mysql.
Vì bạn không thể thay đổi kiểu dữ liệu, bạn có thể sử dụng str_to_date()
chức năng và đây là cách nó hoạt động
mysql> select str_to_date('01/08/2015','%d/%m/%Y') as d ;
+------------+
| d |
+------------+
| 2015-08-01 |
+------------+
Vì vậy, truy vấn cho select sẽ là
select * from table_name
where
str_to_date(date_column,'%d/%m/%Y')
between
str_to_date('01/08/2015','%d/%m/%Y')
and
str_to_date('01/10/2015','%d/%m/%Y')