选择小时开始和结束时间的语句

时间:2015-09-16 07:09:53

标签: mysql select time

我有一个包含整数列startTime和endTime的表(例如60表示凌晨1点,120表示凌晨2点,1320表示10点PM .....等等)

有时endTime值可能小于startTime(从晚上10点开始到凌晨2点结束,然后startTime将是1320,endTime将是60)

现在如果用户输入11PM以查找11PM(1380)是否在晚上10点(1320)和凌晨2点(120)之间....我需要找到的SQL语句是什么。

我正在使用: select * from dayTimes 1380 BETWEEN startTime和endTime。

我只需要一个没有复杂查询的select语句

3 个答案:

答案 0 :(得分:2)

如果开始时间和结束时间不超过24小时,则以下代码将起作用:

select * from dayTimes where 540 BETWEEN startTime and 
if(endTime-startTime>=0,endTime,1440+endTime)
OR
540+1440 BETWEEN startTime and 
if(endTime-startTime>=0,endTime,1440+endTime)

答案 1 :(得分:0)

你应该在MySQL中对这种类型的sql语句使用Case语句。

对于你的问题,这样的事情应该有效。

Select *,
    Case When startTime>endTime THEN 1380 BETWEEN endtime and endTime+startTime
         When endTime>startTime THEN 1380 BETWEEN startTime and endTime
from dayTimes 

此外,您可能希望查看此post

答案 2 :(得分:0)

你可以将这个问题分成两部分,然后检查:

第一部分是检查给定时间是否在' startTime'和1439(即下午11:59) 第二部分(如果给定时间在00:00和结束时间之间进入图片)

select * from dayTimes where 1300 between startTime and 1439 or 1300 between 0000 and endTime;