मेरे पास एक बार लिखे गए कैलेंडर एप्लिकेशन के साथ ऐसी कोई क्वेरी थी। मुझे लगता है कि मैंने कुछ इस तरह इस्तेमाल किया:
... WHERE new_start < existing_end
AND new_end > existing_start;
अपडेट करें यह निश्चित रूप से काम करना चाहिए ((ns, ne, es, ee) =(new_start, new_end, मौजूदा_स्टार्ट, मौजूदा_एंड)):
- ns - ne - es - ee:ओवरलैप नहीं होता और मेल नहीं खाता (क्योंकि ne
- ns - es - ne - ee:ओवरलैप और मैच
- es - ns - ee - ne:ओवरलैप और मैच
- es - ee - ns - ne:ओवरलैप नहीं होता और मेल नहीं खाता (क्योंकि ns> ee)
- es - ns - ne - ee:ओवरलैप और मैच
- ns - es - ee - ne:ओवरलैप और मैच
यह रहा एक fiddle