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