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

降順-月、日、年

    EventDateを推測しています はcharまたはvarcharであり、日付ではありません。そうでない場合は、句による順序で問題ありません。

    CONVERTを使用して、値を日付に変更し、それで並べ替えることができます

    SELECT * 
    FROM 
         vw_view 
    ORDER BY 
       CONVERT(DateTime, EventDate,101)  DESC
    

    それに関する問題は、Sparkyがコメントで指摘しているように、EventDateにクエリが実行されない日付に変換できない値がある場合です。

    つまり、不良行を除外するか、不良行を結果の下部に配置する必要があります

    不正な行を除外するには、WHERE IsDate(EventDate) = 1を追加するだけです。

    悪い日付を一番下に移動させるには、CASEを使用する必要があります

    例:

    ORDER BY 
        CASE
           WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
           ELSE null
        END DESC
    


    1. 新たに挿入された行のIDをibatisで取得する際の同時実行性の問題

    2. データベースモデリング

    3. パブリックネットワーク上でサイバー攻撃からMySQLとMariaDBデータベースを保護する方法

    4. リソースID#5を返すmySQLクエリ