Mysql
 sql >> Database >  >> RDS >> Mysql

Intersezione dell'intervallo di date in SQL

Se il tuo esempio avrebbe dovuto dire 70 nella prima riga, allora

assumendo @range_start e @range_end come parametri di condizione:

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

utilizzando il più grande /least e funzioni data dovresti essere in grado di ottenere ciò di cui hai bisogno operando direttamente sul tipo di data.