0

我有一张表,其中包含一些学生组名称、课程时间、日期名称,例如 Schedule。我正在将 C# 与 MySql 一起使用,我想找出用户按下表中的按钮时的哪一课。

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

我还有表包括 Table_Time 列有 5 条记录,如 08:20 、 10:25 、 12:20 等等。我可以像这样使用:

select Lesson_Time 
from mydb.clock 
where Lesson_Time between (current time)-30 AND (current time)+30  

或者我可以在两列之间使用运算符(例如创建 Lesson_Time_Start 和 Lesson_Time_End)并比较当前时间 Lesson_Start_Time < current time < Lesson_End_Time吗?

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

我有桌子

Time_ID  | Lesson_Time 
    1       08:30
    2       10:25
    3       12:20
    4       14:15
    5       16:10

当我按下某个按钮时,我想检查按下按钮时的当前时间是否等于我在 09:15 按下按钮的 Time_ID,它必须选择第 1 条th record , if I pressed button at 12:00 it must select 2记录。

4

2 回答 2

1

我会尝试这样的事情。

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

查询仅限于当前时间之前按时间降序排序的课程时间记录,并且仅返回第一条记录,这应该是您想要的记录。(但请注意,午夜可能会使事情复杂化。)

于 2010-03-30T19:17:54.177 回答
1

我不完全确定你想做什么,但我认为你正在寻找DATE_ADD 和 DATE_SUB

SELECT Lesson_Time from mydb.clock
 WHERE Lesson_Time between DATE_SUB(NOW(), INTERVAL 30 MINUTE) AND 
                           DATE_ADD(NOW(), INTERVAL 30 MINUTE);

如果 Lesson_Time 是一个合适的DATETIME字段,这应该可以。

于 2010-03-30T17:40:51.670 回答