我需要检查一下我选择的时间是否免费。 例如,17:00-17:06之间的时间被采取,我试图花时间在17:01 - 17:07之间 什么是正确的SQL查询来检查时间是免费还是采取?因为在这种情况下17:01,17:02,17:03次。
在数据库中,我有两个字段laikas
表示开始时间(17:00),laikas_end
表示时间结束(17:07)
到目前为止,我收到了以下问题: 检查我所服用的时间是否在所用的时间之间
$uzimtumas_laiko = "SELECT * FROM reklamos WHERE `laikas` >= '$laikas' AND `laikas_end` <= '$laikas_end'";
检查开始时间和结束时间是否匹配(表示已采用):
$uzimtumas_laiko = "SELECT * FROM reklamos WHERE `laikas` = '$laikas' OR `laikas_end` = '$laikas_end'";
情况可能是我尝试在16:49 - 17:02之间抽出时间,但是17:00-17:06。所以17:50-17:02不能被选中。我相信我需要与BETWEEN合作,但不能想出任何事情。
答案 0 :(得分:0)
也许这可能会帮助你
"SELECT count(*) as COUNT FROM leave where ((start_date >= to_date(:start_date) and start_date <= to_date(:end_date)) OR (to_date(:start_date) >= start_date and to_date(:start_date) <= end_date)) "
答案 1 :(得分:0)
如果您的开始时间或结束时间在所选范围内,则无法选择:
$uzimtumas_laiko = "SELECT * FROM reklamos WHERE (`laikas` BETWEEN '$laikas' AND '$laikas_end') OR (`laikas_end` BETWEEN '$laikas' AND '$laikas_end') OR (`laikas` >= '$laikas' AND `laikas` <= '$laikas_end' ) OR (`laikas_end` >= '$laikas' AND `laikas_end` <= '$laikas_end' )";
答案 2 :(得分:0)
我相信以下是一种更有效的方式来做你想要的事情:
SELECT *
FROM reklamos
WHERE
liakas <= '$liakas_end' AND
liakas_end >= '$liakas'
我认为这是检查&#34;重叠&#34;在时间段之间。