Ik wil een lijst met titels en releasedata uit een database halen. Die lijst moet (als we 'm vandaag zouden maken) als volgt zijn opgebouwd:
Titels voor deze week: 30 januari - 5 februari
Titels voor volgende week: 6-12 februari
Titels voor de rest van de maand na volgende week: 13-28 februari
Titels voor de daarop volgende maand: 1-31 maart
Welnu, ik heb dus vier queries met elk een eigen WHERE-clausule:
1. deze week
2. volgende week
3. de rest van de maand na volgende week
4. de maand na de maand na volgende week (anders gezegd: de eerste HELE maand na volgende week)
etc., etc.
De eerste twee zijn appeltje eitje natuurlijk, maar de derde en vierde krijg ik maar niet goed onder de knie. Ik begrijp wel wat ik fout doe (ik tel één of twee maanden bij de huidige datum op), maar kom niet tot een oplossing. Weet iemand deze? Een hint is ook welkom.
Titels voor deze week: 30 januari - 5 februari
Titels voor volgende week: 6-12 februari
Titels voor de rest van de maand na volgende week: 13-28 februari
Titels voor de daarop volgende maand: 1-31 maart
Welnu, ik heb dus vier queries met elk een eigen WHERE-clausule:
1. deze week
code:
1
| WHERE WEEK(datum) = WEEK(NOW(),1) |
2. volgende week
code:
1
| WHERE WEEK(datum) = WEEK(NOW(),1)+1 |
3. de rest van de maand na volgende week
code:
1
2
| WHERE MONTH(datum) = MONTH(DATE_ADD(CURDATE(),INTERVAL +1 MONTH)) AND WEEK(datum) > WEEK(NOW(),1)+1 |
4. de maand na de maand na volgende week (anders gezegd: de eerste HELE maand na volgende week)
code:
1
2
| WHERE MONTH(datum) = MONTH(DATE_ADD(CURDATE(),INTERVAL +2 MONTH)) AND WEEK(datum) > WEEK(NOW(),1)+1 |
etc., etc.
De eerste twee zijn appeltje eitje natuurlijk, maar de derde en vierde krijg ik maar niet goed onder de knie. Ik begrijp wel wat ik fout doe (ik tel één of twee maanden bij de huidige datum op), maar kom niet tot een oplossing. Weet iemand deze? Een hint is ook welkom.
[ Voor 52% gewijzigd door Parmenides op 04-02-2006 12:36 ]