I cannot think of an easy way to do that right off, but perhaps you could just do the select on your two dates alone, and then in the script have it check each result if it falls on the beginning or end date to determine if it meets the time requirements.
ie,
SELECT * from table WHERE date>='$start_date' AND date <='$end_date'
Then when you loop through the results check the date and if the date is $start_date then make sure the time field is something after your requested time, and if the date is $end_date then make sure the time is some time before your request end time.
Dave