|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
|
Herramientas |
#1
|
||||
|
||||
sqlite android
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 |
|
#2
|
||||
|
||||
Creo que sqlite no tiene DATES por lo que lo ordena en formato String
La verdad desconozco como se podría hacer se me ocurren dos maneras quizá exista algo más fácil. La primera parsea la fecha de la query poniendola en juliano o bien YYYYMMDD como number, Otra opción es ordenarlo en java si lo que retornas es un arraylist puedes ordenarlo implementando Comparator
__________________
Prueba mis aplicaciones para android:
Signature Maker - Código en GitHub Pain Log - Código en GitHub Square attack |
#3
|
||||
|
||||
SQLite efectivamente no tiene DATE, así que estarás almacenando DDMMYYYY en NUMERIC, y eso efectivamente no te dará nunca un orden correcto 02022015 es mayor que 03012015 en DATE, pero no en NUMERIC.
Puedes hacer lo que dice Dild0, que siempre te dará un orden correcto en NUMERIC, o puedes almacenar el CurrentTimeMillis. |
#4
|
||||
|
||||
Estoy con ambos compañeros que te comentaron anteriormente, almacena por CurrentTimeMillis();
Código:
long time = System.currentTimeMillis(); Log.i("tu tag", "El tiempo en milisegundos es: "+time); Código:
long milisegundos = System.currentTimeMillis(); SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm"); Date resultado = new Date(milisegundos); Log.i("tu tag", "En formato fecha: "+resultado); |