I need to select all rows where start
and due
columns range falls into another range. All times are given in unix timestamp format.
The following query works, except when start
< :weekstart
or due
> :weekend
.
$week_start = (new DateTimeImmutable())->setTimestamp($_REQUEST['startdatets']);
$week_start_ts = $week_start->getTimestamp();
$week_end = $week_start->modify('+6 days')->setTime(23,59,59);
$week_end_ts = $week_end->getTimestamp();
$query = " SELECT *
FROM schedules
WHERE ((start BETWEEN :weekstart AND :weekend) OR (due BETWEEN :weekstart AND :weekend))
ORDER BY start
";
try { $stmt = $dbh->prepare($query); $stmt->execute(array(':weekstart' => $week_start_ts, ':weekend' => $week_end_ts)); } catch(PDOException $ex) { echo 'Query failed: ' . $ex->getMessage(); exit; }
I need both to work if possible Please help.