Google+ Followers

zondag 7 oktober 2012

Ontbrekende datums aanvullen.

Het aloude probleem van  het spoofen van records die er niet zijn.

In PostgreSQL kan dat met generate_series()

SELECT '2012-01-01'::date + (i * INTERVAL '1 day')
FROM GENERATE_SERIES(1,5) AS i;

Dat genereert vijf records beginnend op 2012-01-01.


In MySQL kan hetzelfde met een hulptabel die gewoon een serie getallen bevat;

CREATE TABLE help_numbers (i integer);
INSERT INTO help_numbers (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

..en dat dan tot zoveel nummers als je nodig denkt te gaan hebben, zo'n tabel kost niets dus schroom niet om er een paar duizend nummers in te zetten.

Dan kun je praktisch hetzelfde geintje uithalen als in PostgreSQL:

SELECT '2012-01-01' + INTERVAL i DAY
FROM help_numbers WHERE i<5;