Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datumsbereichsüberschneidung in SQL

Wenn Ihr Beispiel 70 in der ersten Zeile hätte sagen sollen, dann

unter der Annahme von @range_start und @range_end als Bedingungsparameter:

SELECT SUM( LEAST(@range_end, stop) - GREATEST(@range_start, start) )
FROM Table
WHERE @range_start < stop AND @range_end > start

mit dem größter /least und Datumsfunktionen Sie sollten in der Lage sein, das, was Sie brauchen, direkt über den Datumstyp zu erhalten.