0

学生グループ名、レッスン時間、スケジュールなどの曜日名を含むテーブルがあります。MySqlでC#を使用していますが、ユーザーがテーブルからボタンを押したときのレッスンを確認したいと思います。

表のように正確な値を入力することで見つけることができます(例:08:30または10:25)。ただし、システム時刻を取得して、08:30〜10:25または10:25〜12:30であることを確認したいと思います。そうすると、1回目か2回目と言えます。

また、テーブルにはTable_Time列があり、08:20、10:25、12:20などの5つのレコードがあります。私は次のように使用できますか:

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

または、2つの列の間で演算子間を使用して(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

そして、いくつかのボタンを押すと、ボタンを押したときの現在の時刻がTime_IDと同じであるかどうかを確認したいと思います。たとえば、09:15にボタンを押した場合、1th 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 に答える