Mysql
 sql >> Base de données >  >> RDS >> Mysql

Intersection de plage de dates en SQL

Si votre exemple aurait dû indiquer 70 dans la première ligne, alors

en supposant que @range_start et @range_end sont vos paramètres de condition :

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

en utilisant le le plus grand /least et fonctions de date vous devriez pouvoir obtenir ce dont vous avez besoin directement en utilisant le type de date.