2016-04-09 52 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 

但是,我的日期不顯示在正確的順序。

2016年4月9日
2016年4月8日
2015-04-09

顯示爲

16年4月9日
15年4月9日
04/08/16

我假設我錯誤地認爲「按日期排序」按照原始日期(yyyy-MM-dd)排序,而不是重新格式化日期(MM/dd/yy)排序。無論如何,我可以通過我的查詢解決這個問題嗎?

+1

您可以將原始日期添加爲查詢中選定的另一個字段,然後按該字段排序。類似於「按日期字段desc從表X選擇日期字段,格式化的日期字段」。或者,您可以在從表格中檢索列表之後格式化日期。 – billjamesdev

+0

不要使用'作爲日期'。使用不同的名稱 –

+0

良好的通話,工作得很好。謝謝。 –

回答

0

Date可以引用表列Date,或引用在SELECT子句中使用AS定義的別名Date。 SQL標準指定在這種衝突中,必須選擇表列,但SQLite選擇別名以與其他數據庫兼容。

要避免此衝突,請爲其別名指定別名,或者使用date_TBL.Date明確指向該表。