2017-10-12 2 views
1

Mon projet est sur le point d'obtenir les classes actuelles pour une école, j'ai créé la base de données avec les CLASSES de table qui contient les colonnes START_TIME (ex: 16:00) et END_TIME (ex: 18:00). et j'ai la variable 'heure' qui prendra l'heure actuelle du système.Requête SQL en obtenant l'heure actuelle

Ma question est: quelle est la meilleure façon d'interroger la base de données pour obtenir les classes actuelles, par exemple (SELECT * FROM CLASSES WHERE START_TIME = 'hour');

qui a fonctionné pour moi si l'heure actuelle est la même que l'heure de début, mais que se passe-t-il si l'heure actuelle est entre le START_TIME et le END_TIME? par exemple la classe est de (16:00 à 19:00) et l'heure actuelle est 15:00? comment résoudre cela?

Répondre

0

Voici ce exactement résolu mon problème à montrer résultat que je veux (pas avant ou après les résultats que l'opérateur ENTRE a fait):

SELECT * FROM CLASSES WHERE 'currentTime' >= START_TIME AND 'currentTime' < END_TIME 
0

Vous pouvez utiliser between comme ceci:

SELECT * 
FROM CLASSES 
WHERE currentTime BETWEEN START_TIME AND END_TIME; 

Une autre option serait d'utiliser les opérateurs >= et <=.

+0

la deuxième option est ce que je dois exactement, il affiche seulement les (classes actuelles) que je veux: SELECT * dE cLASSES oU « currentTime »> = START_TIME eT « currentTime »

0

Que pensez-vous de cela?

SELECT * FROM CLASSES WHERE 'hour' BETWEEN START_TIME AND END_TIME 

Mais cela dépend de la façon dont les heures de début et de fin sont stockées dans la base de données. En tant que valeurs numériques (par exemple 16, 18)? Et qu'en est-il de la valeur horaire? Est-ce que c'est aussi une valeur numérique? Dans les trois valeurs sont numériques, la requête ci-dessus fonctionnera. Si elles sont stockées dans un format différent, la réponse doit être ajustée.

+0

entre les œuvres de l'opérateur, mais il me donne parfois des classes qui sont avant ou après la classe actuelle, car ENTRE inclut à la fois START_TIME et END_TIME,> = et