Issue with dates in a query

Hi folks,

for the life of me I can’t seem to work out why it won’t filter BETWEEN the dates in the code below. the code just seems to run for anything that has a date that is equal, greater than or less than but not exclusively BETWEEN the selected dates.

For some more clarity, I have been filtering a course category which has 10 items. 5 on weekends (sat, sun) and 5 that are week days (mon - fri)

If I select a weekend date range it shows all 10 records and the same if I select a week date range, it shows the weekend courses.

I have researched for a few days now but no one else seems to be asking a question like this on the forum and and other websites I’ve tried the code to the best of my ability, it always filters but not exclusively between the 2 dates.

export function button35_click(event) {
let start = $w('#datePicker1').value;
let end = $w('#datePicker2').value;
console.log(start, "START DATE")
console.log(end, "END DATE")

let startDateQuery = wixData.query("CourseItems")
.ge("dateOneYh", start).or(wixData.query().ge("dateTwoYh", start)).or(wixData.query().ge("dateThreeYh", start))

let endDateQuery = wixData.query("CourseItems")
.le("dateOneYh", end).or(wixData.query().le("dateTwoYh", end)).or(wixData.query().le("dateThreeYh", end))

$w('#relatedCourseRepeater').data = []
let dateRangeQuery = startDateQuery.and(endDateQuery)
.find()
.then((results) => {
console.log(results)
$w('#relatedCourseRepeater').data = results.items;
$w('#relatedCourseRepeater').onItemReady(($item, itemData, index) => {
$item('#title').text = itemData.title
$item('#image').src = itemData.image
})

let totalResults = results.totalCount.toString();
console.log("TOTAL COUNT " + totalResults)
console.log(startDateQuery, "Start Query")
console.log(endDateQuery, "End Query")
});
}