login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Kleinste datumverschil (Opgelost)

Offline Dark_Paul - 16/12/2007 15:03
Avatar van Dark_PaulPHP ver gevorderde Ik probeer een resultaat op te halen waarvan het verschil tussen de huidige datum en het datumveld het kleinst is.
Daar had ik deze query voor gemaakt:
  1. SELECT flyer, showdate FROM shows WHERE MIN(DATEDIFF(CURRENT_DATE(), showdate)) AND showdate>CURRENT_DATE() LIMIT 1

Die werkte niet, ik kreeg van MySQL een error terug:
Invalid use of group function
Toen had ik om te proberen de query herschreven naar dit:
  1. SELECT flyer, showdate, DATEDIFF(CURRENT_DATE(), showdate) AS next_show FROM shows WHERE MIN(next_show) AND showdate>CURRENT_DATE() LIMIT 1

Ook dat werkt niet, ik krijg nog steeds Invalid use of group function.
Wat zoeken via Google heeft me niets opgeleverd, alle antwoorden die daar gegeven worden hebben betrekking op een query met een GROUP BY-argument.
Ik moet de rij hebben waarbij het datumverschil tussen de huidige datum en het datumveld (showdate) het kleinst is, maar de datum van het datumveld wel in de toekomst ligt. Hoe kan ik dat wel doen in MySQL? Ik kan het namelijk ook via PHP doen, maar dat wordt zo omslachtig. Via MySQL moet het ook kunnen.

4 antwoorden

Gesponsorde links
Offline timo - 16/12/2007 15:10
Avatar van timo PHP ver gevorderde probeer anders eens LIMIT 0,1 / 1,1
Offline Dark_Paul - 16/12/2007 15:21 (laatste wijziging 16/12/2007 15:23)
Avatar van Dark_Paul PHP ver gevorderde Nee, ik heb ze geprobeerd, maar dat werkt niet.
Ik krijg nog steeds dezelfde foutmelding: Invalid use of group function.

Edit:
Ik heb het ook maar even zonder de LIMIT gedaan, maar zonder succes. Ik vermoed dat het probleem in de MIN() zit.
Offline Rik - 16/12/2007 15:26
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Probeer het eens met een ORDER BY:
  1. 1.
  2. SELECT flyer, showdate FROM shows WHERE showdate>CURRENT_DATE() ORDER BY DATEDIFF(CURRENT_DATE(), showdate) LIMIT 1
Offline Dark_Paul - 16/12/2007 16:00
Avatar van Dark_Paul PHP ver gevorderde Dankjewel Boukefalos! Dat werkt inderdaad.
Ik heb wel CURRENT_DATE() en showdate omgedraaid, omdat showdate in de toekomst ligt. In de query van Boukefalos wordt de datum het verst in de toekomst gevonden. Omdat de datum van nu minus de datum verst in de toekomst een getal teruggeeft dat verder in de min ligt (dus kleiner is) dan de datum van nu minus een datum minder ver in de toekomst.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.191s