如何比较两个日期之间的时间是否在其他两个日期之间?

时间:2019-03-25 18:16:47

标签: php mysql timestamp

我想比较$ 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 

1 个答案:

答案 0 :(得分:0)

正如您在评论中所说,您在begin中有endUNIX_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

它检查结束时间是否大于开始时间。

希望这会有所帮助:)

相关问题