Den här fungerar, men känns som den kan optimeras. Borde gå att typ "loopa" på något sätt. Men mitt problem är löst. Logiken är att alla datum plus/minus 7 dagar kollas att de har samma veckonummer som den angivna datumet. Då byggs strängen på av typen n=n+1.
SET @datum='2004-10-21';
SET @datum_alla='';
SELECT @vecka:=WEEK(@datum,3);
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 7 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 7 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 6 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 6 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 5 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 5 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 4 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 4 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 3 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 3 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 2 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 2 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 1 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 1 DAY)),'nej');
SELECT IF(WEEK(DATE_SUB(@datum, INTERVAL 0 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_SUB(@datum, INTERVAL 0 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 1 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 1 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 2 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 2 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 3 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 3 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 4 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 4 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 5 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 5 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 6 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 6 DAY)),'nej');
SELECT IF(WEEK(DATE_ADD(@datum, INTERVAL 7 DAY),3)=@vecka,
@datum_alla:=CONCAT(@datum_alla,'<BR>',DATE_ADD(@datum, INTERVAL 7 DAY)),'nej');
SELECT @datum_alla;
Skriver ut följande på en HTML-sida. Alla datum i veckan där 2004-10-21 ingår:
2004-10-18
2004-10-19
2004-10-20
2004-10-21
2004-10-22
2004-10-23
2004-10-24