Als uw products een start_date hebben en een end_date en uw zoekopdracht heeft een qstart_date en een qend_date , dan willen we het aantal dagen tussen:
GREATEST(start_date, qstart_date)
en
LEAST(end_date,qend_date)
. In MySQL denk ik dat dit eruitziet als
1 + DATEDIFF ( 'd' , GREATEST(start_date, qstart_date) , LEAST(end_date,qend_date) )
En u wilt negatieve getallen negeren en ze vervangen door "0".