我想比较$ begin和$ end之间的时间是否在开始时间和结束时间之间。
我的桌子的布局如下:
id-名称-开始时间(以日期时间为单位)-结束时间(以日期时间为单位)
表中的示例条目:
32 -测试- 25.03.2019-5:00pm - 25.03.2019-6:15pm
示例:
$ begin:4:45 pm
$ end:6:30 pm
此示例应该为我提供ID为32的条目,因为$ begin和$ end之间的时间段已经在我的表中了!
SELECT * FROM timetable WHERE FROM_UNIXTIME($begin) BETWEEN starttime AND endtime OR FROM_UNIXTIME($end) BETWEEN starttime AND endtime
答案 0 :(得分:0)
正如您在评论中所说,您在begin
中有end
和UNIX_TIMESTAMP
值,因此这是一个查询以检查是否获得所需的输出:
尝试一下:
SELECT *
FROM timetable
WHERE $begin >= UNIX_TIMESTAMP(`starttime`)
AND $end <= UNIX_TIMESTAMP(`endtime`)
AND $begin < $end
工作方式:
$begin >= UNIX_TIMESTAMP(`starttime`)
它检查开始时间是否大于或等于数据库中保存的开始时间。
$end <= UNIX_TIMESTAMP(`endtime`)
它检查结束时间是否小于或等于数据库中保存的结束时间。
$begin < $end
它检查结束时间是否大于开始时间。
希望这会有所帮助:)