Váš formát v zásadě není seřaditelný pro začátek – porovnáváte řetězce a řetězec "28-10-2012" je větší než "02-11-2012".
Místo toho byste měli porovnávat data jako data a poté je pouze převedete do cílového formátu pro výstup.
Zkuste toto:
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
(Vstup musí být vždy ve tvaru rok-měsíc-hodnota, jak je uvedeno v dokumentaci .)
Všimněte si, že pokud starttime
je DATETIME
pole, můžete zvážit změnu dotazu, abyste se vyhnuli opakované konverzi. (Optimalizátor může být dost chytrý, aby se tomu vyhnul, ale stojí za to to zkontrolovat.)
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
(Všimněte si, že je neobvyklé formátovat datum jako d-m-Y
pro začátek - bylo by lepší použít y-M-d
obecně jde o standard ISO-8601 atd. Výše uvedený kód však dělá to, co jste požadovali v otázce.)