sql >> データベース >  >> RDS >> Mysql

mysqlの日付とdate_formatの比較

    あなたのフォーマットは基本的に最初からソート可能なものではありません-あなたは文字列を比較しています 、および文字列「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標準などです。ただし、上記のコードは、質問で要求したことを実行します。)



    1. mysqlの単一のクエリで子カテゴリの親名を取得する

    2. PyMySQLが古い/スナップショット値を返す/クエリを再実行しない?

    3. mysqliのmysql_field_nameの代替

    4. MySQL5.7で6文字のパスワードを作成する方法