Okay you are missing the issue. You are wrapping your variables (and now functions as well) inside your Quotes which turns that entire thing into a single string and that is not what you are wanting to do as string is a string not a variable nor a function. Now if you insist on doing this all in one line (a bad thing to do btw) then change the following:
To This
c=curseur.execute("SELECT * FROM correction_loc35R WHERE date_correction BETWEEN start_date.strftime('%Y-%m-%d') AND end_date.strftime('%Y-%m-%d') ")
To This
c=curseur.execute("SELECT * FROM correction_loc35R WHERE date_correction BETWEEN "+start_date.strftime('%Y-%m-%d')+" AND "+end_date.strftime('%Y-%m-%d'))