2

「01.01.2012」という形式の日付を含む文字列フィールドを持つ SQLITE DB があります。私が望むのは、クエリでこの文字列形式の日付で並べ替えることです。私は成功せずにこれを試しました:

SELECT * FROM fahrer, fahrzeuge, nutzungsarten, fahrtenbuch WHERE fahrtenbuch.nutzungsart_id = nutzungsarten._id AND fahrtenbuch.fahrzeuge_id = fahrzeuge._id AND fahrtenbuch.fahrer_id = fahrer._id ORDER BY strftime ('%d.%m.%Y', fahrtenbuch.startdatum)

私が間違っていることは何ですか?

4

1 に答える 1

4

列の値はstartdatumSQLite が認識する形式ではないため、 へのパラメーターとして使用することはできませんstrftime。(たとえそれが機能したとしても、その日付形式は最も重要なフィールドである年で始まっていないため、結果は正しくソートされません。)

yyyy-mm-dd並べ替えが順序と同等になるように、日付フィールドを抽出することができます。

SELECT ...
ORDER BY substr(startdatum, 7, 4),
         substr(startdatum, 4, 2),
         substr(startdatum, 1, 2)

ただし、最初に値をサポートされている形式に変換することをお勧めします。

于 2012-10-31T21:05:47.220 に答える