Beste leden,

Graag zou ik de resultaten van vandaag en de rest van de maand willen tonen.

SELECT event_id, datetime
FROM sportevenementen
WHERE MONTH(datetime) = MONTH(NOW()) ORDER BY `datetime` ASC

Met de query hierboven krijg ik alle resultaten van de maand.

Graag zou ik de resultaten van vandaag 8 oktober en de rest van de maand willen zien.
Volgens mij gebruik ik daarvoor de CURDATE, maar weet ik niet hoe ik deze kan toepassen in de query.

Heeft iemand een idee, hoe ik dit zou kunnen aanpassen?

Met vriendelijke groet,

Levy van der Meijden
datetime kun je inderdaad niet als veldnaam gebruiken.

Het zou iets zijn als

SELECT * 
FROM tabel
WHERE datum BETWEEN NOW()
    AND LAST_DAY(NOW())


LAST_DAY()
Bedankt voor de reacties,

Oke, dan verander ik de veldnaam.

Ik ga de sql query code proberen.

[size=xsmall]Toevoeging op 08/10/2019 19:51:38:[/size]

$result = mysqli_query($con,"SELECT event_id, datum
FROM sportevenementen
WHERE datum between '2019-10-08' and '2019-10-31' ORDER BY `datetime` ASC");

Dit is wel gelukt, nog even vigileren.

$result = mysqli_query($con,"SELECT event_id, datum
FROM sportevenementen
WHERE datum BETWEEN '2019-10-08' AND LAST_DAY('2019-10-08') ORDER BY datum ASC");

LAST_DAY('2019-10-08') wordt dan automatisch 2019-10-31
[size=xsmall]Toevoeging op 08/10/2019 21:12:32:[/size]

$result = mysqli_query($con,"SELECT event_id, datumtijd
FROM sportevenementen
WHERE datumtijd > date_sub(CURRENT_DATE(), interval 0 week) order by datumtijd ASC");

Nu heb ik de begindatum goed, maar de laatste dag van de maand nog niet.
Ik kan het niet uitproberen maar misschien helpt het je in de goede richting

$result = mysqli_query($con,"SELECT event_id, datumtijd
FROM
    sportevenementen
WHERE
    datumtijd > date_sub(CURRENT_DATE(), interval 0 week)
AND
    datumtijd <= LAST_DAY(NOW())
ORDER BY
    datumtijd ASC");

Als je toch geen interval gebruikt kun je ook gewoon NOW() gebruiken.

LAST_DAY(NOW()) kan ook als LAST_DAY(CURDATE()) of LAST_DAY(CURDATE() + INTERVAL 1 MONTH)
Bedankt, de resultaten zijn tot en met 2019-10-30.

Maar ik ga dit proberen:
LAST_DAY(NOW()) kan ook als LAST_DAY(CURDATE()) of LAST_DAY(CURDATE() + INTERVAL 1 MONTH)
Gebruik je wel <= ? (Minder dan en gelijk aan)
Nu gebruik je ook de > (Meer dan). Dit zou ook de datum van morgen pakken waarschijnlijk.
Nee, de datum blijft tot 2019-10-30.

$result = mysqli_query($con,"SELECT event_id, datumtijd
FROM sportevenementen
WHERE datumtijd >= date_sub(CURRENT_DATE(), interval 0 week) AND datumtijd <= LAST_DAY(NOW()) order by datumtijd ASC");



Ik heb het gereproduceerd en ik krijg inderdaad ook niet de laatste dag.
Met < en met <= krijg ik het zelfde resultaat. Heel vreemd. Misschien is er iemand hier die dat kan uitleggen.

Een workaround is om er een dag bij op te tellen

$result = mysqli_query($con,"SELECT event_id, datumtijd
FROM
    sportevenementen
WHERE
    datumtijd > '2019-10-08'
AND
    datumtijd < DATE_ADD(LAST_DAY('2019-10-08'), INTERVAL + 1 DAY)
ORDER BY
    datumtijd ASC");

Erg fraai is dit niet.

Reageren