2014-09-09 8 views
1

Je veux vérifier une piqûre (ici la date) dans la colonne de base de données START_TIME en utilisant comme opérateur android. Comme disons START_TIME = "09-09-2014, 11:33:01" et date = "09-09-2014" je veux prendre les autres colonnes comme DURATION dans la valeur START_TIME dans la colonne.comment utiliser "comme" opérateur dans android?

Voici mon code:

public String getDuration(String date){ 
     SQLiteDatabase db=dbHelper.getWritableDatabase(); 
     String[] columns={DatabaseCreate.DURATION}; 
     String[] selectionArgs = {date}; 
     Cursor cursor=db.query(DatabaseCreate.USER_WORK_LOG, columns, 
       DatabaseCreate.START_TIME+"=?%",selectionArgs,null,null,null); 
     String duration=""; 
     int myNum = 0; 
     while(cursor.moveToNext()){ 
      int index=cursor.getColumnIndex(DatabaseCreate.DURATION); 
      duration=cursor.getString(index); 
      //int index1=cursor.getColumnIn 
      try { 
       myNum += Integer.parseInt(duration); 
      } catch(NumberFormatException nfe) { 
       // Handle parse error. 
      } 
     } 

     int min = myNum%60; 
     int hour = myNum/60; 
     String hour_str = Integer.toString(hour); 
     String min_str = Integer.toString(min); 
     if(min<=9){ 
      min_str = "0"+min; 
     } 
     if(hour<10){ 
      hour_str = "0"+hour; 
     } 
     return hour_str+":"+min_str; 
    } 

Répondre

2

Obtenez le curseur avec:

Cursor cursor=db.query(DatabaseCreate.USER_WORK_LOG, columns, 
      DatabaseCreate.START_TIME+" LIKE '"+date+"%'",null,null,null,null); 

EDIT: Notez que vous pouvez exécuter une requête SQL régulière sur la base de données en utilisant le rawQuery (... méthode.

Espérons que ça aide.

+0

Je reçois cette erreur: Provoquée par: java.lang.IllegalArgumentException: Impossible de lier l'argument à l'index 1 car l'index est hors limites. L'instruction a 0 paramètre. – Niranjan

+0

Voir la réponse éditée où les éléments selectionArgs sont annulés et le paramètre est passé dans la requête. –

Questions connexes