A maneira mais fácil de encontrar uma sobreposição é assim:
IF EXISTS (SELECT 1 FROM table WHERE @myValueLo <= ExistingRangeEnd AND @myValueHi >= ExistingRangeStart)
-- Overlaps
ELSE
-- Doesn't overlap
Isso pode ser mostrado para funcionar se você comparar a condição acima com cada uma das barras no diagrama abaixo:
Existing range: |-------------------|
Overlaps: |-------------| |------------|
|----------------------------------|
|-------------|
Not overlaps: |-----| |----|
em todos os casos de sobreposição, ambos os testes são verdadeiros:
- a data de início do intervalo existente é sempre anterior à data de término do novo intervalo
- a data de término do intervalo existente é posterior à data de início do novo intervalo
Aqueles que não se sobrepõem falham em um ou outro deste teste.