SELECT * from events WHERE actief=1 AND  '".date('Y-m-d h:i:s')."' between startdatum and einddatum LIMIT 20


bijv huidige datum: 1 mei 18:00 uur met een rij -> startdatum van 2020-04-20 09:00:00 , einddatum van 2020-05-20 12:00:00.

Als ik de query uitvoer met deze huidige datum, dan krijg ik resultaat.
Wat ik wil is dat ik alleen resultaat krijg wanneer de tijd tussen 9:00 en 12:00 is en niet om 18:00.

Dus met de dagen tussen 2020-04-20 en 2020-05-20 en tijden tussen 9:00 en 12:00 uur.

Moet ik dan apart een tijdtabel maken?

Dit werkt ook niet:


SELECT * from events WHERE actief=1 AND  '".date('Y-m-d')."' between startdatum and einddatum  AND  '".date('h:i:s')."' between TIME(startdatum) AND TIME(einddatum) LIMIT 20


Ik krijg gewoon tijden die na 12:00 liggen.
Sja, [color=#ff0000]h[/color] is ook de 12-uurs notatie, en [color=#ff0000]H[/color] de 24-uurs notatie.

Tenzij startdatum en einddatum hun tijd ook via PHP toegekend hebben gekregen is het misschien ook onverstandig om tijd in PHP en tijd in MySQL te mixen omdat deze zich misschien op verschillende apparaten bevinden en dus mogelijk ook aparte klokken hebben die niet helemaal gelijk lopen. Kies dus voor één van de twee als de enige klok voor tijdsindicatie.

WHERE NOW() BETWEEN startdatum AND einddatum


ik vind datum trouwens een verwarrende term als je r toch ook een tijd bij zet

Reageren