This was a rookie mistake made by "someone":
"details in a database with sql server table having a field Varchar type"
A varchar is a string not a mathematical date. Thus, any query you run to get records by a date range will be inaccurate if it works at call.
You'll need to CAST/CONVERT the column to a date, datetime, smalldatetime, etc... in the WHERE clause of your query.
Which, will hurt your query performance.
Ideally, you'd fix the database and alter this date oriented column to a proper date type. Absent that, you are stuck with always converting the values and getting worthless performance.