Pergunta

Eu tenho uma tabela que inclui algum nome do grupo de estudantes, tempo da lição, nomes de dias como cronograma. Estou usando o C# com o MySQL e quero descobrir qual lição é quando o usuário pressiona o botão da tabela.

Eu posso encontrá -lo inserindo o valor exato como na tabela, por exemplo, 08:30 ou 10:25. Mas eu quero fazer com que isso obtenha o tempo do sistema e verifique se está entre 08:30 e 10:25 ou 10:25 e 12:30. Então posso dizer que é a primeira ou a segunda lição.

Eu também tenho a tabela inclui a coluna Table_time tem 5 registros como 08:20, 10:25, 12:20 SO ON. Eu poderia usar como:

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

Ou posso usar entre o operador entre duas colunas (como criar lesson_time_start e lesson_time_end) e comparar o tempo atual como Lesson_Start_Time < current time < Lesson_End_Time?

EDITAR:Mais precisamente, o problema é como posso verificar a hora atual é qual registro

Eu tenho mesa como

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

E quando eu pressiono um botão, quero verificar a hora atual em que pressionei o botão é equivalente a qual tempo_id forexample eu pressionei o botão às 09:15 e deve selecionar 1th record , if I pressed button at 12:00 it must select 2th registro.

Foi útil?

Solução

Eu tentaria algo assim.

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

A consulta é limitada a registros de tempo da lição antes do tempo atual classificado descendo pelo tempo e retorna apenas o primeiro registro, que deve ser o registro que você deseja. (Observe, no entanto, que a meia -noite pode complicar as questões.)

Outras dicas

Não tenho muita certeza do que você quer fazer, mas acho que você está procurando Date_add e 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);

desde que lição_time seja adequado DATETIME campo, isso deve funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top