MySQL: Usando entre na tabela?
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 2
th registro.
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.