I am storing my dates in column server_date_time in varchar in dd/mm/yyyy format and i want to fetch the records lying between some dates so i have
Try this one -
SELECT * FROM activity_emp
WHERE STR_TO_DATE(server_date_time, '%d/%m/%Y')
BETWEEN '2012-09-29' AND '2012-09-30'
But it is better to store server_date_time in DATETIME data type so that MySQL can use index.
SELECT *
FROM `activity_emp`
WHERE STR_TO_DATE( `column_name` , '%d/%m/%Y' )
BETWEEN '2010-10-10'
AND '2010-11-10'
This is Simple and Easy to understand Date Query to search between Two Dates
Date that stored in datebase in like 01/01/2016 and datatype is varchar
SELECT * FROM `test` WHERE STR_TO_DATE(`test`.`date`, '%d/%m/%Y') BETWEEN '2016-01-01' AND '2016-01-31' ORDER BY `test`.`date` ASC
Try with this. You can input date in dd/mm/yyyy format as in your question...
SELECT * FROM activity_emp
WHERE STR_TO_DATE(server_date_time, '%d/%m/%Y')
BETWEEN STR_TO_DATE('29/08/2012', '%d/%m/%Y')
AND STR_TO_DATE('07/10/2012', '%d/%m/%Y')
Update: I strongly recommend you to change datatype from VARCHAR to DATETIME
Cheers!!!
STR_TO_DATE is enough. DATE_FORMAT changes it back to VARCHAR
SELECT...
FROM...
WHERE str_to_date(substr(server_date_time,1,10),'%d/%m/%Y')
BETWEEN '29/09/2012' AND '07/10/2012'
when dealing date please use DATE or DATETIME data type. This will avoid you from doing casting which affects the performance of the query.
If you are storing the dates always in dd/mm/yyyy in the column then this is an easy task:
SELECT * from activity_emp
where server_date_time BETWEEN '29/09/2012' AND '07/10/2012'
Isn't this enough? Hope it helps you