Tweede UPDATE:
Nu heb ik het in elke versie werkend:
select
*
from
Payroll
inner join
(
SELECT DATE(DATE_ADD('2012-10-05',
INTERVAL @i:[email protected]+14 DAY) ) AS dateP
FROM Payroll, (SELECT @i:=0) r
where @i < DATEDIFF(now(), date '2012-10-05')
) sq on Payroll.datestamp = sq.dateP
U hoeft alleen de variabele in de query te initialiseren.
UPDATE:
Het vreemde is dat deze zonder problemen op mijn lokale computer werkt (versie 5.1.41-3ubuntu12.7-log), maar niet in je SQLfiddle.
set @i:= 0;
select
*
from
Payroll
inner join
(
SELECT DATE(DATE_ADD('2012-10-05',
INTERVAL @i:[email protected]+14 DAY) ) AS dateP
FROM Payroll
where @i < DATEDIFF(now(), date '2012-10-05')
) sq on Payroll.datestamp = sq.dateP
EINDE UPDATE
Heb je het zo geprobeerd?
set @i:= 0;
SELECT distinct datestamp FROM payroll
WHERE STR_TO_DATE(datestamp, '%M, %d %Y %H:%i:%f') in (
SELECT DATE(ADDDATE('2012-10-05',
INTERVAL @i:[email protected]+14 DAY) ) AS dateP
FROM payroll
where @i < DATEDIFF(now(), date '2012-10-05')
)
;
Ik vermoed dat de DATE()
functie mislukt, want je bent varchar
(is het?) de datum is niet in ISO-formaat. Daarom moet je STR_TO_DATE()
. gebruiken functie.
Voor exact gebruik van STR_TO_DATE()
lees hier en hier . Ik ben niet zeker van het microsecondegedeelte.