あなたのフォーマットは基本的に最初からソート可能なものではありません-あなたは文字列を比較しています 、および文字列「28-10-2012」は 「2012年2月11日」より大きい。
代わりに、日付を日付として比較する必要があります 、そしてそれらを出力用のターゲット形式に変換するだけです。
これを試してください:
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
(入力は、ドキュメント 。)
starttime
の場合は注意してください DATETIME
です フィールドでは、繰り返し変換を回避するためにクエリを変更することを検討することをお勧めします。 (オプティマイザーはそれを回避するのに十分賢いかもしれませんが、チェックする価値があります。)
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
(日付をd-m-Y
としてフォーマットするのは珍しいことに注意してください まず、y-M-d
を使用することをお勧めします 一般に、ISO-8601標準などです。ただし、上記のコードは、質問で要求したことを実行します。)