> It is DATETIME() type. Does it need to be handled differently in the BETWEEN() clause?
Yes, it has to be handled differently because of the time part.
Assuming that lc_bdate and lc_edate are datetimes w/o time part
...
WHERE ( Inst_request.ir_orddte >= ?lc_bdate AND Inst_request.ir_orddte < (?lc_edate + 1) ;
...
--sb--