2013-03-05 3 views
2

Так что я, казалось бы, не столь умный вопрос, но здесь идет,время Дата сортировки в SQLite

10:00pm to 11:00pm 

имеют время даты возвращенную с сервера в указанном выше формате.

Я хочу, чтобы иметь возможность отсортировать его, но с помощью ORDER BY ASC, похоже, не работает. Он работает на iPhone, но он не работает на Android.

Это из-за версии базы данных SQLite?

Как отсортировать время?

ответ

6

То, что вы показываете, - это не время, а интервал времени.

Это значение является строкой, а строки сравниваются лексикографически. Чтобы гарантировать правильность сортировки строк, все поля должны иметь одинаковую длину (если нет, 9:00 будет сортироваться после10:00; вместо этого используйте 09:00). Кроме того, суффиксы AM/PM не сортируются правильно в первый час дня; используйте обычный 24-часовой формат.

0

Возможно, это потому, что SQLite, но попытайтесь сохранить время в секундах, если вы отсортируете сек, он будет работать. EX 1:05 = 65 сек. Edit: если вы хотите, чтобы отобразить время в режиме, просто преобразовать его обратно в час: мин: сек Я думаю, что это будет самым простым способом для вас;)

0

Вы можете сделать одну вещи, перед хранением в обращенных базах данных дата в милис. Затем вы можете получить отсортированный список. Затем после получения отсортированного результата вы можете снова преобразовать их на сегодняшний день.

Для преобразования вы можете использовать класс SimpleDateFormat. примеры кода можно найти в doc или вы можете увидеть множество примеров

0

Вы можете сортировать дату с помощью Time Stamp: Как: «уу MM дд чч: мм в» // здесь в вашем случае чч: ММА

Преобразовать Вас время в простой формат даты, как показано ниже:

DateFormat simpleDateFordate = new SimpleDateFormat("yy MM dd"); 
     Calendar calender = Calendar.getInstance(); 
     String date = simpleDateFordate.format(calender.getTime()); 
     System.out.println("date>>>>" + date); 
     String time = "10:00pm"; 
     String stringDate = date + " " + time; 

     DateFormat dateFormatdatewithTime = new SimpleDateFormat(
       "yy MM dd hh:mma"); 
     Date dateinMili; 
     try { 
      dateinMili = dateFormatdatewithTime.parse(stringDate); 
      String dateFinal = dateFormatdatewithTime.format(dateinMili.getTime()); 
      System.out.println("Final Date time>>>>"+dateFinal); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

Магазин Mili Seconds в вашей базе данных или вы можете просто сохранить дату DateSimpleFormat Date в базе данных.

После всего этого вы можете сразу отсортировать его по простой запрос, как: SELECT * FROM table_name ORDER BY Column_Date ASC

Смежные вопросы