[ PHP CODE @ 04.03.2010. 14:28 ] @
Imam jednu komplikovanu situaciju u koju sam se uvukao pocetnickim neznanjem.

Naime, napravio sam tabelu u MySQL koja izmedju ostalog ima kolonu date, ali mi je ona varchar tipa (greska prilikom kreiranja tabele).
Potom su se podaci unosili u tu kolonu u sledecem formatu: dd.mm.yyyy - odnosno php funkciom: date("j.n.Y")
Sad mi treba da uzimam podatke iz tabele koji su izmedju dva datuma (koristeci BETWEEN). Kako ovo da rijesim na najjednostavniji nacin?
Pretpostavka je da tabela ima preko 1000 redova?

Hvala najljepse!
[ Goran Rakić @ 04.03.2010. 14:45 ] @
Dodaj novu kolonu i pretvori varchar u date pomoću MySQL funkcije STR_TO_DATE. Otprilike:

Code:

ALTER TABLE t1 ADD COLUMN real_date DATE;
ALTER TABLE t1 ADD INDEX (real_date);
UPDATE t1 SET real_date = STR_TO_DATE(text_date,'%d.%m.%Y');


Ako ne smeš da dodaješ kolonu možeš da sve uradiš i uživo, ali onda ne koristiš indekse.

Code:

SELECT * FROM t1 WHERE STR_TO_DATE(text_date,'%d.%m.%Y') BETWEEN '...' AND '...';
[ PHP CODE @ 04.03.2010. 19:17 ] @
To je to!
Hvala puno, problem rijesen!