2016-04-09 8 views
0

私は日付として主キーを持つテーブルを持っています。日付はyyyy-MM-ddの形式の文字列です。私のJavaプログラムでは、MM/dd/yyとしてデータを表示します。日付を降順で表示したい。これを達成するために、次のクエリを使用します。SQLiteのテーブル順

select strftime('%m/%d/', Date) || substr(strftime('%Y', Date),3, 2) as Date from date_TBL Order by Date DESC 

ただし、私の日付は正しい順序で表示されません。

04/09/16
04/09/15
04/08として

2016年4月9日
2016年4月8日2015年4月9日

ディスプレイ/ 16

"date by order desc"は、元の日付(yyyy-MM-dd)で、再フォーマットされた日付(MM/dd/yy)ではないと誤って推測します。とにかく私の質問でこれを回避することはできますか?

+1

元の日付をクエリで選択した別のフィールドとして追加し、そのフィールドで注文することができます。 "select datefield、formatteddatefield from table X order by datefield desc"と同様です。あるいは、テーブルからリストを取得した後に日付をフォーマットすることもできます。 – billjamesdev

+0

'として'を使用しないでください。別の名前を使用してください –

+0

良い呼び出しは、素晴らしい仕事。ありがとうございました。 –

答えて

0

Dateは、表の列Date、またはSELECT句にASで定義した別名Dateのいずれかを参照できます。 SQL標準では、このような競合ではテーブルの列を選択する必要がありますが、SQLiteは他のDBとの互換性のために別名を選択するように指定しています。

この競合を回避するには、エイリアスに別の名前を付けるか、明示的にdate_TBL.Dateという表を参照してください。

関連する問題