C# mySQL:在表中使用中间层?

C# mySQL:在表中使用中间层?,c#,mysql,between,C#,Mysql,Between,我有一个表,其中包括一些学生组名称、上课时间、日期名称,如时间表。我在MySql中使用C,我想知道当用户按下表中的按钮时是哪一课 我可以通过输入表中的精确值来找到它,例如08:30或10:25。但我想让系统的时间在08:30到10:25之间,或者10:25到12:30之间。那么我可以说这是第一课或第二课 我还有一个表包含表_时间列有5条记录,如08:20、10:25、12:20等等。 我能用一下吗 select Lesson_Time from mydb.clock where Lesson

我有一个表,其中包括一些学生组名称、上课时间、日期名称,如时间表。我在MySql中使用C,我想知道当用户按下表中的按钮时是哪一课

我可以通过输入表中的精确值来找到它,例如08:30或10:25。但我想让系统的时间在08:30到10:25之间,或者10:25到12:30之间。那么我可以说这是第一课或第二课

我还有一个表包含表_时间列有5条记录,如08:20、10:25、12:20等等。 我能用一下吗

select Lesson_Time 
from mydb.clock 
where Lesson_Time between (current time)-30 AND (current time)+30  
或者我可以在两列之间使用between运算符,如创建课程时间开始和课程时间结束,以及比较当前时间,如课程开始时间<当前时间<课程结束时间

编辑: 更准确地说,问题是我如何检查当前时间是哪个记录

我有一张桌子

Time_ID  | Lesson_Time 
    1       08:30
    2       10:25
    3       12:20
    4       14:15
    5       16:10
当我按下某个按钮时,我想检查当我按下按钮时的当前时间是否等于
例如,我在09:15按下按钮,它必须选择第1条记录,如果我在12:00按下按钮,它必须选择第2条记录。

我不完全确定您想要做什么,但我认为您正在寻找:


如果Lesson\u Time是一个合适的日期时间字段,那么它应该可以工作。

我会尝试这样的方法

select
    Time_ID,
    Lesson_Time
from
    mydb.clock
where
    Lesson_Time <= TIME(NOW())
order by
    Lesson_Time DESC
limit 0, 1

查询仅限于按时间降序排列的当前时间之前的课程时间记录,并仅返回第一条记录,该记录应为所需的记录。不过,请注意,午夜可能会使事情复杂化。

谢谢您的快速回复。我虽然喜欢您以前的解决方案,但这里的问题是,如果时间是08:50,它将是-30分钟08:20,但在我的表格中,第一条记录从08:30开始,您也可以说现在+间隔30分钟。@Meko那么您想赶上下一个30分钟的间隔吗?那不一样。我不知道mySQL中有什么优雅的解决方案。你能相应地更新你的问题吗?但它在C上不起作用。C还有其他的实现吗?@Meko它怎么能不在C上起作用?您正在向mySQL发出查询,是吗?@Pekka是的。其他查询可以工作,但不会返回任何值。@Meko嗯,也许没有数据可查询?如果没有数据,MySql工作台中如何显示?我还发现了我的错误。是time.C DateTime.Now.ToStringhh:mm的语法解决了这个问题。我认为MySql的时间语法和我在表中的时间声明是一样的,但C有另一个语法,这意味着这是我的错误。抱歉打扰了
select
    Time_ID,
    Lesson_Time
from
    mydb.clock
where
    Lesson_Time <= TIME(NOW())
order by
    Lesson_Time DESC
limit 0, 1