sql >> Database >  >> RDS >> Mysql

Tabel Datumkolomvergelijking met een gegenereerde datumlijst - MYSQL

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.




  1. Het interval-uitvoerformaat instellen in PostgreSQL

  2. Unicode-coderingsfout 'latin-1' codec kan teken '\u2019' niet coderen

  3. Hoe phpMyAdmin op Debian 8 te installeren en configureren

  4. Gegevens moeten worden vervangen volgens de opzoektabel