date_diff probleem
Hey,
Ik heb een datumveld in m'n datebase. (event_date)
Nu wil ik met ondestaande query alle events ophalen tesamen met het aantal dagen wanneer dat event plaatsvind.
SELECT DATE_FORMAT(CURDATE(),'%d-%m')), DATE_FORMAT(event_date,'%d-%m'), event_short_content,event_long_content, DATEDIFF(DATE_FORMAT(CURDATE(),'%d-%m'),DATE_FORMAT(event_date,'%d-%m')) AS verschil FROM events;
deze geeft helaas NULL terug bij 'verschil'
Gaat dit niet werken of heb ik ergens een fout?
Ik heb een datumveld in m'n datebase. (event_date)
Nu wil ik met ondestaande query alle events ophalen tesamen met het aantal dagen wanneer dat event plaatsvind.
SELECT DATE_FORMAT(CURDATE(),'%d-%m')), DATE_FORMAT(event_date,'%d-%m'), event_short_content,event_long_content, DATEDIFF(DATE_FORMAT(CURDATE(),'%d-%m'),DATE_FORMAT(event_date,'%d-%m')) AS verschil FROM events;
deze geeft helaas NULL terug bij 'verschil'
Gaat dit niet werken of heb ik ergens een fout?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
SELECT
DATE_FORMAT(CURDATE(),'%d-%m')),
DATE_FORMAT(event_date,'%d-%m'),
event_short_content,
event_long_content,
DATEDIFF(
DATE_FORMAT(CURDATE(),'%d-%m'),
DATE_FORMAT(event_date,'%d-%m')
) AS verschil
FROM
events;
DATE_FORMAT(CURDATE(),'%d-%m')),
DATE_FORMAT(event_date,'%d-%m'),
event_short_content,
event_long_content,
DATEDIFF(
DATE_FORMAT(CURDATE(),'%d-%m'),
DATE_FORMAT(event_date,'%d-%m')
) AS verschil
FROM
events;
Stap 1: De query leesbaar uitschrijven, de basis van iedere goed script.
Stap 2: De handleiding: Waar staat in de handleiding van MySQL dat je de functie DATE_FORMAT() in de functie DATEDIFF() moet gebruiken? Je hebt 2x een datum nodig, niet 2x een waardeloze string.
Stap 3: 2x met DATE_FORMAT() data ophalen is leuk en aardig, maar zonder alias is dat in PHP niet/nauwelijks bruikbaar. Geef dus nog even een alias op in de query. Kun je direct no geen overbodig haakje ) weghalen.
mod_edit:
Sorry Frank voor de edit, maar vond het niet waard er een nieuwe post aan te wijten.
Aan de TS: De SQL die hierboven staat is dus niet de juiste, maar is jouw eigen query en dan wel op een goede manier uitgewerkt. Nu kan je tenminste fatsoenlijk de query lezen.
Aan de TS: De SQL die hierboven staat is dus niet de juiste, maar is jouw eigen query en dan wel op een goede manier uitgewerkt. Nu kan je tenminste fatsoenlijk de query lezen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Helaas Frank, deze geeft ook al een NULL terug bij elke vergelijking :(
Ik ben ondertussen met deze bezig:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events
Deze geeft nl het aantal dagen terug wanneer het event plaatsvind. Wat ik dus wil. :)
In de WHERE clausule wil ik het aantal dagen hebben die kleiner zijn dan 4 en groter dan 0 (dus geen verleden events) , dus:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') > 0
Deze 'lijkt' te werken maar is dit wel correct?
Ik ben ondertussen met deze bezig:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events
Deze geeft nl het aantal dagen terug wanneer het event plaatsvind. Wat ik dus wil. :)
In de WHERE clausule wil ik het aantal dagen hebben die kleiner zijn dan 4 en groter dan 0 (dus geen verleden events) , dus:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') > 0
Deze 'lijkt' te werken maar is dit wel correct?
@Jurgen
Je hebt blijkbaar de edit van Frank zijn bericht niet gelezen, en ik denk zelfs behalve de code het hele bericht niet.
Lees het hele bericht eens. Het voorbeeld wat hij gaf (volgens jou) is gewoon de query die jij gebruikt, maar dan leesbaar uitgeschreven. En neem de dingen die Frank zegt ter harte, hij is (1 van) de SQL guru's hier.
Je hebt blijkbaar de edit van Frank zijn bericht niet gelezen, en ik denk zelfs behalve de code het hele bericht niet.
Lees het hele bericht eens. Het voorbeeld wat hij gaf (volgens jou) is gewoon de query die jij gebruikt, maar dan leesbaar uitgeschreven. En neem de dingen die Frank zegt ter harte, hij is (1 van) de SQL guru's hier.
ivm leesbare query ben ik het eens met jou en frank. Sorry voor deze.
Die edit had ik idd niet gelezen, was te snel met reageren.
Ik heb wel het hele bericht gelezen hoor. Maar mysql gaf een null terug bij een correct geschreven query, wat ik dan weer vreemd vind. Ofwel gaat dit niet lukken op die manier. daarom overgegaan naar die andere query.
Die edit had ik idd niet gelezen, was te snel met reageren.
Ik heb wel het hele bericht gelezen hoor. Maar mysql gaf een null terug bij een correct geschreven query, wat ik dan weer vreemd vind. Ofwel gaat dit niet lukken op die manier. daarom overgegaan naar die andere query.
@Jurgen
Die query van jou is niet correct.. Een datediff doe je niet over een met DATE_FORMAT() geformatteerde datum, maar over de gewone datum! Dus de query is al niet correct.
Bovendien, als je in je query een SELECT DATE_FORMAT(kolom,'%Y-%D') zou gebruiken, dan moet je er een alias bij zetten:
Die query van jou is niet correct.. Een datediff doe je niet over een met DATE_FORMAT() geformatteerde datum, maar over de gewone datum! Dus de query is al niet correct.
Bovendien, als je in je query een SELECT DATE_FORMAT(kolom,'%Y-%D') zou gebruiken, dan moet je er een alias bij zetten:
Dat is 't em juist Robert, die alias heb ik niet nodig! heb enkel het vershil nodig. ik maak dus enkel een alias op verschil.
Ofwel snap ik jullie niet.
Ivm je edit over frank: frank is idd een guru hier, waar ik niet aan twijfel. Had gehoopt dat hij hier een antwoord zou geven op m'n vraag :)
ivm aliassen:
ik kan toch geen vergelijking maken als ik aan een veld een alias toeken:
vb
SELECT DATE_FORMAT(event_date,'%d-%m') as datum FROM events
geeft alle maanden en jaren van een event.
Als ik nu deze gebruik
SELECT DATE_FORMAT(event_date,'%d-%m') as datum ,DATE_FORMAT(CURDATE(),'%d-%m')as nu FROM events WHERE datum < nu
geef natuurlijk een error
Unknown column 'datum' in 'where clause'
dus die aliassen heb ik nie nodig. Hoop dat ik hier een beetje duidelijker mee ben.
Ofwel snap ik jullie niet.
Ivm je edit over frank: frank is idd een guru hier, waar ik niet aan twijfel. Had gehoopt dat hij hier een antwoord zou geven op m'n vraag :)
ivm aliassen:
ik kan toch geen vergelijking maken als ik aan een veld een alias toeken:
vb
SELECT DATE_FORMAT(event_date,'%d-%m') as datum FROM events
geeft alle maanden en jaren van een event.
Als ik nu deze gebruik
SELECT DATE_FORMAT(event_date,'%d-%m') as datum ,DATE_FORMAT(CURDATE(),'%d-%m')as nu FROM events WHERE datum < nu
geef natuurlijk een error
Unknown column 'datum' in 'where clause'
dus die aliassen heb ik nie nodig. Hoop dat ik hier een beetje duidelijker mee ben.
Jurgen, zoals Robert ook al zei: vergelijkingen met data doe je met de oorspronkelijke data. Niet met de resultaten van DATE_FORMAT. Die resultaten zijn immers geen data meer, enkel strings die een datum in een bepaalde notatie weergeven.
Het zou dus zo moeten:
ps. En die aliassen heb je zeker wel nodig. Hoe zou je anders de geformatteerde data ('datum' en 'nu') uit de resultaat set willen lezen?
Het zou dus zo moeten:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT
DATE_FORMAT(event_date, '%d-%m') AS datum,
DATE_FORMAT(CURDATE(), '%d-%m') AS nu
FROM
events
WHERE
event_date < CURDATE()
DATE_FORMAT(event_date, '%d-%m') AS datum,
DATE_FORMAT(CURDATE(), '%d-%m') AS nu
FROM
events
WHERE
event_date < CURDATE()
ps. En die aliassen heb je zeker wel nodig. Hoe zou je anders de geformatteerde data ('datum' en 'nu') uit de resultaat set willen lezen?
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Grrrrrr
Nog 1 poging:
Ik heb dus een tabel met evenementen...
vb verjaardag van iemand : 14 januari 1962
Nu wil ik zoeken wanneer dat event plaatsvind (in 2008)
ik moet dit veld toch omzetten zonder rekening te houden met het jaar!
date_format dus.
Maar ik kan helaas niet gaan rekenen met date_format omdat ik telkens NULL krijg voorgeschoteld!!!
pfffffff
Of ben ik het die hier moeilijk doe!
Nog 1 poging:
Ik heb dus een tabel met evenementen...
vb verjaardag van iemand : 14 januari 1962
Nu wil ik zoeken wanneer dat event plaatsvind (in 2008)
ik moet dit veld toch omzetten zonder rekening te houden met het jaar!
date_format dus.
Maar ik kan helaas niet gaan rekenen met date_format omdat ik telkens NULL krijg voorgeschoteld!!!
pfffffff
Of ben ik het die hier moeilijk doe!
Dan zoek je helemaal in de verkeerde richting, maar feit blijft dat je niet kunt rekenen met het resultaat van DATE_FORMAT().
Gelukkig kent MySQL genoeg andere functies waarmee je het probleem zou kunnen oplossen. Als je enkel de datum wilt weten van het event in 2008, zou ik het zo aanpakken:
Natuurlijk zou je er ook en andere constructie omheen kunnen bouwen waarin je bijvoorbeeld de datum in het volgende jaar zou weergeven als het event in het huidige jaar al geweest is.
Maar dat hangt er maar helemaal vanaf wat jij uit de database wilt halen.
Gelukkig kent MySQL genoeg andere functies waarmee je het probleem zou kunnen oplossen. Als je enkel de datum wilt weten van het event in 2008, zou ik het zo aanpakken:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT
CONCAT(
DATE_FORMAT(event_date, '%d-%m-'),
YEAR(CURDATE())
) AS event_in_huidig_jaar
FROM
events
CONCAT(
DATE_FORMAT(event_date, '%d-%m-'),
YEAR(CURDATE())
) AS event_in_huidig_jaar
FROM
events
Natuurlijk zou je er ook en andere constructie omheen kunnen bouwen waarin je bijvoorbeeld de datum in het volgende jaar zou weergeven als het event in het huidige jaar al geweest is.
Maar dat hangt er maar helemaal vanaf wat jij uit de database wilt halen.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
'jurgen:
Grrrrrr
Nog 1 poging:
Ik heb dus een tabel met evenementen...
vb verjaardag van iemand : 14 januari 1962
Nu wil ik zoeken wanneer dat event plaatsvind (in 2008)
ik moet dit veld toch omzetten zonder rekening te houden met het jaar!
date_format dus.
Maar ik kan helaas niet gaan rekenen met date_format omdat ik telkens NULL krijg voorgeschoteld!!!
pfffffff
Of ben ik het die hier moeilijk doe!
Nog 1 poging:
Ik heb dus een tabel met evenementen...
vb verjaardag van iemand : 14 januari 1962
Nu wil ik zoeken wanneer dat event plaatsvind (in 2008)
ik moet dit veld toch omzetten zonder rekening te houden met het jaar!
date_format dus.
Maar ik kan helaas niet gaan rekenen met date_format omdat ik telkens NULL krijg voorgeschoteld!!!
pfffffff
Of ben ik het die hier moeilijk doe!
Jij bent het die moeilijk doet, je kan niet rekeken met de met DATE_FORMAT geformatteerde data. Neem dat nu eens van ons aan
Je kan met de functies MONTH() en DAY() wel kijken of iets op een bepaalde dag en / of datum valt:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
WHERE
MONTH(datumveld) >= 10 (dus if of na oktober)
AND
DAY(datumveld) >= 5 (dus ook nog eens na de 5e)
MONTH(datumveld) >= 10 (dus if of na oktober)
AND
DAY(datumveld) >= 5 (dus ook nog eens na de 5e)
Nogmaals Gebruik geen DATE_FORMAT in je vergelijking, neem dat nu eens van ons aan. Dat werkt niet en zal ook nooit gaan werken.
Sorry jongens, maar alle hulp is idd welkom.
Verklaar dan eens waarom deze dan wel werkt:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') >= 0
En ja, 'leesbare querys', maar heb deze ff geprobeerd en gecopieerd.
Jij zegt van geen date_format in m'n vergelijking. deze lukt dus wel.
Verklaar dan eens waarom deze dan wel werkt:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') >= 0
En ja, 'leesbare querys', maar heb deze ff geprobeerd en gecopieerd.
Jij zegt van geen date_format in m'n vergelijking. deze lukt dus wel.
Puur toeval. Je selecteert hier met date_format enkel een dag van een jaar. Hoewel dit een string is, zal MySQL het ook kunnen interpreteren als een integer (omdat de string uit enkel getallen bestaat) en er dus mee kunnen rekenen als integer.
Nogmaals, dit is dus puur toeval en ik zou het eerder een bug in MySQL willen noemen dan een functionaliteit.
ps. Dat neemt overigens nog niet weg dat jij het resultaat van de eerste twee DATE_FORMAT()'s in die query, moeilijk kunt uitlezen. Simpelweg omdat je ze geen alias geeft...
Nogmaals, dit is dus puur toeval en ik zou het eerder een bug in MySQL willen noemen dan een functionaliteit.
ps. Dat neemt overigens nog niet weg dat jij het resultaat van de eerste twee DATE_FORMAT()'s in die query, moeilijk kunt uitlezen. Simpelweg omdat je ze geen alias geeft...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Lol
Toeval of nie, ik zou dan wel eens zien hoe m'n 'niet-toevallige' query eruit moet zien :)
dus ik moet alle evenementen hebben die de komende 4 dagen gaan plaatsvinden.
Ben eens benieuwd nu :)
Bedankt alvast
Toeval of nie, ik zou dan wel eens zien hoe m'n 'niet-toevallige' query eruit moet zien :)
dus ik moet alle evenementen hebben die de komende 4 dagen gaan plaatsvinden.
Ben eens benieuwd nu :)
Bedankt alvast
Omdat je daar simpel gezegd uit DATE_FORMAT maar alleen een jaartal krijgt, en daarmee kan je wel verder rekekenen.
Jurgen, neem het nu eens aan, gebruik niet DATE_FORMAT in je vergelijking, die hoort daar niet en is daar niet voor bedoeld. Onderstaand hoe je het (in het geval van de query die dus wel lukt) zou moeten:
Let wel op, ik heb niet inhoudelijk naar de query gekeken, alleen de juiste MySQL functies gebruikt om de query wel goed te laten zijn.
Probeer het nu eens zo, en ga ook op zo'n manier aan de gang met de andere query.
YEAR(datumveld) -> Geeft jaartal
MONTH(datumveld) -> Geeft maand
DAY(datumveld) -> Geeft dag
Vergelijk de dag en de maand niet in 1 keer, maar doe dat los van elkaar:
Met de voorgaande WHERE clause kijk je naar data die na 4 augustus vallen, maar niet naar het jaartal.
Jurgen, neem het nu eens aan, gebruik niet DATE_FORMAT in je vergelijking, die hoort daar niet en is daar niet voor bedoeld. Onderstaand hoe je het (in het geval van de query die dus wel lukt) zou moeten:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT
DAYOFYEAR(CURDATE()) AS huidig_dag,
DAYOFYEAR(event_date) AS event_dag,
DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) as verschil
FROM
events
WHERE
DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) < 4
AND
DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) >= 0
DAYOFYEAR(CURDATE()) AS huidig_dag,
DAYOFYEAR(event_date) AS event_dag,
DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) as verschil
FROM
events
WHERE
DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) < 4
AND
DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) >= 0
Let wel op, ik heb niet inhoudelijk naar de query gekeken, alleen de juiste MySQL functies gebruikt om de query wel goed te laten zijn.
Probeer het nu eens zo, en ga ook op zo'n manier aan de gang met de andere query.
YEAR(datumveld) -> Geeft jaartal
MONTH(datumveld) -> Geeft maand
DAY(datumveld) -> Geeft dag
Vergelijk de dag en de maand niet in 1 keer, maar doe dat los van elkaar:
Met de voorgaande WHERE clause kijk je naar data die na 4 augustus vallen, maar niet naar het jaartal.
Edit:
Ik had niet goed gekeken, het moest dayofyear zijn in plaats van year.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
'jurgen:
dus ik moet alle evenementen hebben die de komende 4 dagen gaan plaatsvinden.
Zo dus:
Neem ook eens een kijkje in de MySQL handleiding en let op het subtiele verschil tussen functies als DAY() en DAYOFYEAR(). Verder zul je met deze query nog wel in de knoop komen naarmate het einde van het jaar nadert.
1 - 365 is natuurlijk <= 4, maar 10 - 365 is dat ook. Kortom, alle events van het komende jaar zullen weergegeven worden. Aan jou nu de taak om een extra voorwaarde te stellen zodat dit niet gebeurt.
Dit is dus een geldige query:
SELECT *,
DAYOFYEAR( event_date ) - DAYOFYEAR( CURDATE( ) ) as verschil
from events
WHERE DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) <= 4
AND DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) > 0
Geef idd terug wat ik wil
Thx nog
SELECT *,
DAYOFYEAR( event_date ) - DAYOFYEAR( CURDATE( ) ) as verschil
from events
WHERE DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) <= 4
AND DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) > 0
Geef idd terug wat ik wil
Thx nog
Tip: Ga testen.
Zet een hele serie verschillende datums in de database en ga vervolgens de systeemdatum van jouw pc/server aanpassen om verschillende situaties na te bootsen. Alleen een verjaardag op 14 januari testen op 14 januari is niet zo handig. En dan druk ik het heel voorzicht uit!
Daarnaast is MySQL een zeer onbetrouwbare database, die gaat bij het minste of geringste gokken welke data hij vandaag retour geeft. Wanneer jij even niet oplet, lijkt het dat er correcte data retour komt (hé, het werkt! er is data!), maar in werkelijkheid klopt er geen ene mallemoer van. Goed testen is dus een vereiste. Maar ook een vak apart...
Edit:
Nogmaals, ga testen. En in dit geval ook met datums ná 28 februari en ook in andere jaren dan 2008. Dat is een schrikkeljaar en heeft dus meer dagen dan de andere jaren.
Zet een hele serie verschillende datums in de database en ga vervolgens de systeemdatum van jouw pc/server aanpassen om verschillende situaties na te bootsen. Alleen een verjaardag op 14 januari testen op 14 januari is niet zo handig. En dan druk ik het heel voorzicht uit!
Daarnaast is MySQL een zeer onbetrouwbare database, die gaat bij het minste of geringste gokken welke data hij vandaag retour geeft. Wanneer jij even niet oplet, lijkt het dat er correcte data retour komt (hé, het werkt! er is data!), maar in werkelijkheid klopt er geen ene mallemoer van. Goed testen is dus een vereiste. Maar ook een vak apart...
Edit:
Quote:
Geef idd terug wat ik wil
Nogmaals, ga testen. En in dit geval ook met datums ná 28 februari en ook in andere jaren dan 2008. Dat is een schrikkeljaar en heeft dus meer dagen dan de andere jaren.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Dat is wel een geldige query inderdaad.. Maar let ook even op de opmerking van Blanche, die moet je nog wel afvangen.
Probeer nu eens met de informatie die je van ons (in overvloede) hebt gekregen je volgende query op te bouwen.
Probeer nu eens met de informatie die je van ons (in overvloede) hebt gekregen je volgende query op te bouwen.
Je had zo te zien zelf al bedacht dat dat verschil groter moest zijn dan 0. Nu kent de database hier nog een kortere functie voor:
Die had ik idd al gevonden Blanche.
Aan allen, bedankt nog voor de support. Ben intussen aan t testen.
Maar was toch eens benieuwd wat deze query gaf in pg
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') >= 0
Ben intussen wel aan het testen met die query die ik van jullie had :)
Aan allen, bedankt nog voor de support. Ben intussen aan t testen.
Maar was toch eens benieuwd wat deze query gaf in pg
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') >= 0
Ben intussen wel aan het testen met die query die ik van jullie had :)




