Ideally, you should use date types to store dates, but if that’s not the case, you should study casting for today, and then compare.
select * from yourtable where cast (yourdate as Date) BETWEEN Date_Add(CURDATE(), INTERVAL -21 Day) and Date_Add(CURDATE(), INTERVAL -14 Day)
Please note: this is not tested and may require a little tweaking, but you should give a general idea of what you need to do.
Also, if possible, you should really study converting the varchar field to a date field .... they have date types to prevent such an event, although I know that changing field types is not always an option.
source share