diff --git a/src/server/sparql/Filters.js b/src/server/sparql/Filters.js
index 1f404e47285ccfd1c0c7714d9f789a894935e1ec..0fcb2ae4e142abf0a2d3d48576e26bd8ed79fd77 100644
--- a/src/server/sparql/Filters.js
+++ b/src/server/sparql/Filters.js
@@ -50,12 +50,26 @@ export const generateFilter = ({
       if (property !== facetProperty) {
         const facetConfig = facetConfigs[facetClass][property];
         const { start, end } = timespanFilters[property];
+        const selectionStart = start;
+        const selectionEnd = end;
+        // filterStr += `
+        //   ?${filterTarget} ${facetConfig.predicate} ?timespan .
+        //   ?timespan ${facetConfig.startProperty} ?start .
+        //   ?timespan ${facetConfig.endProperty} ?end .
+        //   # both start and end is included in selected range
+        //   FILTER(?start >= "${start}"^^xsd:date)
+        //   FILTER(?end <= "${end}"^^xsd:date)
+        // `;
         filterStr += `
           ?${filterTarget} ${facetConfig.predicate} ?timespan .
-          ?timespan ${facetConfig.startProperty} ?start .
-          ?timespan ${facetConfig.endProperty} ?end .
-          FILTER(?start >= "${start}"^^xsd:date)
-          FILTER(?end <= "${end}"^^xsd:date)
+          ?timespan ${facetConfig.startProperty} ?timespanStart .
+          ?timespan ${facetConfig.endProperty} ?timespanEnd .
+          # either start or end is included in the selected range
+          FILTER(
+            ?timespanStart >= "${selectionStart}"^^xsd:date && ?timespanStart <= "${selectionEnd}"^^xsd:date
+            ||
+            ?timespanEnd >= "${selectionStart}"^^xsd:date && ?timespanEnd <= "${selectionEnd}"^^xsd:date
+          )
         `;
       }
     }