Il modo più semplice per trovare una sovrapposizione è questo:
IF EXISTS (SELECT 1 FROM table WHERE @myValueLo <= ExistingRangeEnd AND @myValueHi >= ExistingRangeStart)
-- Overlaps
ELSE
-- Doesn't overlap
Questo può essere mostrato per funzionare se confronti la condizione sopra con ciascuna delle barre nel diagramma seguente:
Existing range: |-------------------|
Overlaps: |-------------| |------------|
|----------------------------------|
|-------------|
Not overlaps: |-----| |----|
in tutti i casi di sovrapposizione, entrambi questi test sono veri:
- la data di inizio dell'intervallo esistente è sempre prima della data di fine della nuova gamma
- la data di fine dell'intervallo esistente è successivo alla data di inizio della nuova gamma
Quelli che non si sovrappongono non superano l'uno o l'altro di questo test.