Android - Select con BETWEEN que no funciona.

 
Vista:
sin imagen de perfil

Select con BETWEEN que no funciona.

Publicado por Bladimir (8 intervenciones) el 11/10/2016 03:09:06
Hola a todos. Tengo una tabla llamada relaciones donde se almacenan una serie de datos que incluyen la fecha de insercion del dato en un texto con formato YYYY-MM-DD. La sentencia que extrae la informacion funciona solo cuando extraigo datos insertados solo hoy, es decir la fecha actual y solo un dia; pero cuando la fecha es una fecha pasada, por ejemplo, 2016-09-19 no lo hace. El codigo que uso es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
protected void verpxcaroni() {
	// TODO Auto-generated method stub
	String ini = mDateDisplay.getText().toString();
	String fin = mDateEndDisplay.getText().toString();
	 TextView titulotb = (TextView)this.findViewById(R.id.titulotb);
	 titulotb.setText("RELACION HCC LAPSO " + ini + " al " + fin );
 
	TableLayout table2 = (TableLayout)this.findViewById(R.id.tableLayout);
	TableRow row2 = (TableRow)LayoutInflater.from(this).inflate(R.layout.cabecera_dos, null);
	table2.addView(row2);
	 baseDatos = openOrCreateDatabase(nombreBD, MODE_WORLD_WRITEABLE, null);
	  Cursor cur = baseDatos.rawQuery("SELECT nombre, apellidos, cedula, edad, fecha, concepto, monto FROM relaciones WHERE fecha BETWEEN '" + ini + "' AND '" + fin + "' AND  centro='HCC'", null);
	     for(int i = 0; i < cur.getCount(); i++){
	    	 TableLayout table = (TableLayout)this.findViewById(R.id.tableLayout);
	    	 while (cur.moveToNext()){
	    		 String nombre = cur.getString(0);
	    		  String apellido = cur.getString(1);
	    		  String cedula= cur.getString(2);
	    		  String age= cur.getString(3);
	    		  String fecha= cur.getString(4);
	    		  String concepto= cur.getString(5);
	    		  String monto= cur.getString(6);
	    		  TableRow row = (TableRow)LayoutInflater.from(this).inflate(R.layout.fila, null);
	    		    ((TextView)row.findViewById(R.id.textView1)).setText(nombre);
	    		    ((TextView)row.findViewById(R.id.textView2)).setText(apellido);
	    		    ((TextView)row.findViewById(R.id.textView3)).setText(cedula);
	    		    ((TextView)row.findViewById(R.id.textView4)).setText(age);
	    		    ((TextView)row.findViewById(R.id.textView5)).setText(fecha);
	    		    ((TextView)row.findViewById(R.id.textView6)).setText(concepto);
	    		    ((TextView)row.findViewById(R.id.textView7)).setText(monto);
	    		     table.addView(row);
	    	 }
	    	 table.requestLayout();
	    	 ini="";
	    	 fin="";
	     }
}
No consigo el error. Mucho agradezco la ayuda prestada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 4
Ha disminuido su posición en 21 puestos en Android (en relación al último mes)
Gráfica de Android

Select con BETWEEN que no funciona.

Publicado por Yamil Bracho (100 intervenciones) el 11/10/2016 03:28:33
El formato YYYY-MM-DD espeifica que por ejemplo la fecha 2016-10-1 debe ser 2016-10-01.
Lo otra recomendacion que pudiera darte es que uses un RecyclerView o un ListView para mostrar los datos y asi no manipulas la interfaz desde tu codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Select con BETWEEN que no funciona.

Publicado por Bladimir (8 intervenciones) el 11/10/2016 12:02:20
Gracias Yamil por la gentileza de responder. Tienes razo, el error esta alli. En el caso del mes de septiembre el asunto es que el datepicker me da un formato 2016-9-18 y en la base de datos el formato es 2016-09-18. Por eso no funciona. Ahora el asunto es como hago para que el datepicker no me anule en cero a la izquierda y en vez de darme un formato 2016-10-5 que me lo de 2106-10-05.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar