Jump to content

sqlite android


Recommended Posts

hola hola :), espero que esten bien :) estoy haciendo una aplicacion en android y estoy ocupando sqlite me funciona todo perfecto el unico problema es al momento de ordenar mis datos ya que quiero que se ordene de forma ascendete por fecha, en la base bueno parametros DATE en formato DD-MM-YYYY y para hacer la consulta hago:

Cursor c=db.query("rutinas", columns, null, null, null, null, "fecha"+" ASC");

el problema es que igual me quedan desordenadas :(.

como podria ordenar mis datos por fecha? :(

Gracias

Link to comment
Share on other sites

:mmm: Es que para que las fechas puedan ordenarse (correctamente) tienes que guardarlas en el formato YYYY-MM-DD. Pero si ya las guardaste así, podrías tratar haciendo la consulta de esta forma (no tengo idea si funciona) :nose: :


Cursor c = db.query("rutinas", columns, null, null, null, null, "substr(fecha, 7, 4), substr(fecha, 4, 2), substr(fecha, 1, 2)");
:huasonto:
Link to comment
Share on other sites

:mmm: Es que para que las fechas puedan ordenarse (correctamente) tienes que guardarlas en el formato YYYY-MM-DD. Pero si ya las guardaste así, podrías tratar haciendo la consulta de esta forma (no tengo idea si funciona) :nose: :

Cursor c = db.query("rutinas", columns, null, null, null, null, "substr(fecha, 7, 4), substr(fecha, 4, 2), substr(fecha, 1, 2)");
:huasonto:

 

 

es que soy rebelde y los guarde al reves ajajajajja XD me resulto muchas gracias!!!!!!! me podrias explicar eso si que es lo que hace es que no cacho XD

Link to comment
Share on other sites

Cuando tengas dudas, siempre deberías consultar la documentación oficial primero ;)

 

Como dije antes, para poder ordenar las fechas cronológicamente, hay que usar el formato YYYY-MM-DD, pero como guardaste las fechas de la forma DD-MM-YYYY, entonces lo que hago es extraer los componentes de la fecha (año, mes y día) y pásarselos al ORDER BY.

Generalmente, al ORDER BY se le pasa una o más columnas para ordenar las filas (Ej: ORDER BY apellido,rut, quiere decir que si hay varias personas que tienen el mismo apellido, entonces las filas que contienen el mismo apellido se ordenan por RUT). En este caso, no se pasan columnas al ORDER BY, sino cadenas extraídas de la columna fecha; así que sería similar a usar algo como ORDER BY año, mes, día, donde año, mes y día son sub-cadenas extraídas de una cadena más grande.

 

Así que, en este caso, "recorto" los componentes de cada fecha y se los paso al ORDER BY en el orden que me interesa (año, mes y día).

 

:huasonto:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...