2012-02-15 38 views
0

在android 2.0.3中,我想要一個建議如何使我的遊標數據以降序排列。我知道在sqlite日期存儲在文本中,但我檢索了遊標並解析日期但不能按照降序排序..需要幫助.. 這是我的代碼,如果有人可以幫助在Android 2.0.3中的sqlite數據庫示例中的日期排序在Android 2.0.3中的示例

int cnt = rs_inc.getCount();

   String d[]=null; 
       SimpleDateFormat formatter ; 
      Date date1 = null,date2 = null ; 
       formatter = new SimpleDateFormat("dd-mm-yy"); 
      boolean swap = true; 
        while(swap) 
        { 
         swap = false;   
         for(int i =1; i < cnt; i++) 
         { 
         d[i]=rs_inc.getString(2); 
         try { 
           date1 = (Date)formatter.parse(rs_inc.getString(2)); 
           }catch(Exception e){} 
           rs_inc.moveToNext(); 
           if(rs_inc.isAfterLast()){ 
            rs_inc.moveToPrevious(); 
           } 

           d[i+1]=rs_inc.getString(2); 
         try { 
           date2 = (Date)formatter.parse(rs_inc.getString(2)); 
           }catch(Exception e){} 
          if(date1.before(date2))  
          { 
           swap = true;  
           String temp = d[i];  
           d[i] = d[i + 1];  
           d[i + 1] = temp;   
          } 
         } 
        } 
+0

,日期可能會被存儲爲字符串,但你可以定義列類型爲'DATETIME'讓sqlite做的順序工作 – waqaslam 2012-02-15 10:24:20

+0

是從我寫的數據類型爲DATETIME的語法,但它仍然無法正常工作,並將其僅作爲字符串使用。 – 2012-02-15 10:35:36

回答

5

看起來像你使用錯誤的日期格式。

爲了在SQLite的DATETIME進行排序,你需要使用如下正確的日期格式:

DateFormat dateFormatISO8601 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
SQLite中
+0

感謝您的答覆,我是新到Android這樣,可以請詳細介紹一下?這是我創建表syntax..db.execSQL( 「CREATE TABLE」 + TABLE_NAME_INCOME +「(ID INTEGER PRIMARY KEY,名字TEXT,incomename TEXT ,價格INTEGER,日期DATETIME)「);的 – 2012-02-15 10:42:22

+0

而不是使用'日期DATE',請嘗試使用'[日期] DATETIME' – waqaslam 2012-02-15 10:44:19

+0

感謝UUU所以much..i審判,它幫助我.. :)) – 2012-02-15 10:56:16