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.