SQLite には日付と時刻のデータ型がないため、日付はテキスト形式になっているため、データを日付で並べ替えたいと考えています。
したがって、次のようにデータベースにクエリを実行すると
SELECT jobno, ondate FROM Reports ORDER BY DATE(ondate)
これは、データではなくアルファベット順に並べ替えられたデータを返します。日付順に並べ替えるにはどうすればよいですか?
基本的にINTEGER型であるUnixエポック形式、または時間文字列(YYYY-MM-DDのもの)を使用してください。使用できる時間文字列形式のリストは、ここにあります。
INTEGER タイプをソートするように unix-epoch をソートし、TEXT タイプをソートするように時間文字列をソートします。
SQLite が の形式の文字列を比較/ソートする場合dd/mm/YYYY
、他の文字列と同様に処理します。つまり、文字列の最初の文字が優先されます。たとえば、 の01/10/2013
前にソートされ22/01/2000
ます。
日付を比較またはソートしたり、SQLite の組み込み日付関数を使用したりする場合は、サポートされている日付形式のいずれかを使用する必要YYYY-MM-DD
があります。
DATE
(特定のクエリでは、パラメーターの形式を認識しない場合に返される関数を呼び出してNULL
います。これは、レコードがまったく並べ替えられなかったことを意味します。)
日付をミリ秒単位で入力するか、YYYYMMDD 形式のテキストを使用するという 2 つのことをお勧めします。表示したいとき、または保存したいときはいつでも変換してください。複雑ではなく、多くの手間を省くことができます。
日付をタイムスタンプとして、つまりミリ秒単位で保存することをお勧めします。