Wenn Ihre products ein start_date haben und ein end_date und Ihre Abfrage hat ein qstart_date und ein qend_date , dann wollen wir die Anzahl der Tage zwischen:
GREATEST(start_date, qstart_date)
und
LEAST(end_date,qend_date)
. In MySQL sieht das meiner Meinung nach so aus
1 + DATEDIFF ( 'd' , GREATEST(start_date, qstart_date) , LEAST(end_date,qend_date) )
Und Sie sollten negative Zahlen ignorieren und durch "0" ersetzen.