PHP,MYSQL如何根据当前时间查询表中所对应的时间段

SELECT * FROM my_date;

ID START_DATE END_DATE VAL
1 00:00:00 06:00:00 0.5
2 06:00:00 20:00:00 11
3 20:00:00 00:00:00 99
如上图所示,要如何查询当前时间所匹配的行?

SELECT * FROM my_date WHERE (start_date>CURTIME() and end_date<CURTIME());
现在的时间是 17:31,为什么这样返回的数据ID为3,不应该是2吗

你这是属于字符串比较了吧。转化成日期对象在比较

你的条件设置错了吧

 SELECT * FROM my_date WHERE (start_date<CURTIME() and end_date>CURTIME()); 

SELECT * FROM my_date WHERE (start_date>CURTIME() and end_date<CURTIME());
写反了。而且你没有带上日期。

转成时间戳 然后比较大小就可以了