查找具有其他时间戳范围内的时间戳范围的所有行

时间:2016-12-08 03:49:22

标签: php mysql

我需要选择startdue列范围落入另一个范围的所有行。所有时间都以unix时间戳格式给出。

以下查询有效,但start< :weekstartdue> :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; }

enter image description here

如果可能,我需要两者都工作 请帮忙。

1 个答案:

答案 0 :(得分:1)

啊,所以你错过了start < :weekstartend > :weekend的情况 - 两者之间都没有,但是这一周与范围重叠。它有一个很好的逻辑。

搜索句点WHERE start < :weekend AND end > :weekstart

相关问题