0

日付を文字列としてsqliteデータベーステーブルに保存しました。必要なものiiは、過去7日間に保存された値を取得する必要があります。以下を使ってみましたが、値が表示されません。

マイデータベース機能

     public Cursor paymentWeek(Activity activity)
     {

       String[] from = { _PAYMENTID, NAME, REQUESTEDDATE, FROMAD, TOADD, EMAILBODYPAYMENT, AMOUNT};  

       SQLiteDatabase db = getReadableDatabase(); 

       String orderby = REQUESTEDDATE+" DESC";  

       Cursor cursor = db.rawQuery("select * from " + PAYMENTTABLE + " where " + REQUESTEDDATE + " BETWEEN "
       + "date('now')" + " AND " + "date('now','-7 days')", null);

       activity.startManagingCursor(cursor);

       return cursor;  
    }

Calling function

    Cursor week = db.paymentWeek(this);
               String[] weekly = new String[] { PaymentAppDataBase.REQUESTEDDATE,PaymentAppDataBase.PAYMENTNAME,PaymentAppDataBase.AMOUNT };
               int[] sevendays = new int[] { R.id.Date,R.id.Name,R.id.Amount };

               SimpleCursorAdapter weekcursor =
                    new SimpleCursorAdapter(this, R.layout.listview, week, weekly, sevendays);
                setListAdapter(weekcursor);
               db.close();

あなたたちがこの問題を解決するなら、それは役に立ちます。私はここで立ち往生しています。

4

2 に答える 2

1

次のクエリを試して、先週(7日間)のレコードを取得してください。

"select * from " + PAYMENTTABLE + " where " + REQUESTEDDATE + "DATE_SUB( CURDATE( ) ,INTERVAL 7 DAY ) AND CURDATE( )";
于 2012-04-09T04:35:01.207 に答える
0

データベースの設計を変更する必要はありません。

dateStringからlongメソッドへの独自の変換を記述し、それをDateUtil.javaのようなクラスに配置してから、日付型で何かを実行したい場所で呼び出します。

メソッドは次のようになります。

    public static long convertStringDateToLong(String date, String yourDateFormat) {
    Long time = 0L;
    try {
        SimpleDateFormat df = new SimpleDateFormat(yourDateFormat);
        Date d = null;
        try {
            d = df.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        time = d.getTime();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return time;
}

yourDateFormatは次のようになります: "MM / dd / yyyy"

于 2013-12-10T07:05:50.463 に答える