Php MYSQL:基于当前时间返回列时间值?

Php MYSQL:基于当前时间返回列时间值?,php,mysql,Php,Mysql,好的,我有一个包含四列的表的数据库。每列都有许多记录,所有记录都使用mySQL时间数据类型输入一天中的时间 我如何查询数据库并返回最接近当前时间的时间值 我把它设置好了,这样我就有了一个简单的webform,它接受用户想要的列的用户输入。我希望将所选列中最接近当前时间的时间值返回给用户 COLUMN1 COLUMN2 COLUMN3 COLUMN4 11:00 11:40 11:25 11:35 12:05 12:25 12:35 12:25 等 因此,如果用户在web

好的,我有一个包含四列的表的数据库。每列都有许多记录,所有记录都使用mySQL时间数据类型输入一天中的时间

我如何查询数据库并返回最接近当前时间的时间值

我把它设置好了,这样我就有了一个简单的webform,它接受用户想要的列的用户输入。我希望将所选列中最接近当前时间的时间值返回给用户

COLUMN1 COLUMN2 COLUMN3 COLUMN4
11:00   11:40   11:25   11:35
12:05   12:25   12:35   12:25

因此,如果用户在webform中输入“3”,并且当前时间是12:10,我希望将12:35的值返回给他们

我一直在谷歌上搜索,我认为我需要使用CURTIME()。我不想知道如何获取用户输入并使用它来查询哪个列。我只需要知道如何返回最接近当前时间的列的时间值!谢谢。

试试:

SELECT * 
FROM table_name 
WHERE time > CURTIME()
ORDER BY time ASC 
LIMIT 1
编辑:

也许这就是出路

SELECT * FROM table_name AS T
 WHERE T.time = (SELECT MIN(T2.time) FROM table_name AS T2
                  WHERE T2.time > ?)

“?”是参考时间的占位符(通过PHP)。

试试这个。它选择最后一个时间条目:

按col1 desc limit 1从表_name order中选择col1

你可以做:

SELECT column3, TIMEDIFF(column3, CURTIME()) AS difference 
FROM timetbl 
ORDER BY ABS(difference) ASC 
LIMIT 1

如果您只需要将来最接近的时间(如用户需要赶火车时),
差异
需要大于0,因此您需要添加
WHERE TIMEDIFF(column3,CURTIME())>“00:00”

您的设计是否按任何特定顺序规范化记录?i、 最近一次第一次/最后一次?是的!!很好!!虽然我不得不把订单改成…谢谢你,先生!不客气!我编辑了SQL(ORDER->orderby)。祝您有个美好的一天。