Как отсортировать дату, которая хранится в базе данных со строкой

Я пытаюсь сортировать

SELECT * FROM myTable ORDER BY DATE(дата) // date хранится со строкой

Вот LogCat

11-22 12:50:50.906: I/DB(31388): get :17 Nov 2013 09:36:01
11-22 12:50:50.906: I/DB(31388): get :13 Nov 2013 07:41:29
11-22 12:50:50.907: I/DB(31388): get :12 Nov 2013 11:09:46
11-22 12:50:50.907: I/DB(31388): get :08 Nov 2013 09:13:26
11-22 12:50:50.908: I/DB(31388): get :02 Nov 2013 08:54:26
11-22 12:50:50.908: I/DB(31388): get :27 Oct 2013 08:02:09
11-22 12:50:50.908: I/DB(31388): get :26 Oct 2013 07:42:18
11-22 12:50:50.908: I/DB(31388): get :21 Oct 2013 06:45:18
11-22 12:50:50.909: I/DB(31388): get :19 Oct 2013 07:38:43
11-22 12:50:50.909: I/DB(31388): get :16 Oct 2013 03:12:16

ОБНОВЛЕНИЕ ЗДЕСЬ ============>>>

Это не возврат long значение. Это всегда return 0,

    try {
        DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
        Date date = sdf.parse(dateTime);
        long milliseconds = date.getTime();
        return milliseconds;
    } catch (Exception e) {
        e.printStackTrace();
        Log.i("DB", "err :" + e);
        return 0;
    }

Хочу разобраться с последней датой, может кто-нибудь потратил на меня время.. Заранее спасибо.

2 ответа

Решение

Вы можете преобразовать строковую дату в Long, затем поместить ее в базу данных: если у вас есть Date String что-то вроде этого 22/11/2013 12:10:00, вы можете просто конвертировать ее с помощью SimpleDateFormater

   public static long convertStringDateToLong(String dateTime){
        try {
            DateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
            Date d = f.parse(dateTime);
            long milliseconds = d.getTime();
            return milliseconds;
        } catch (Exception e) {
            return 0;
        }

    }

SimpleDateFormate Зависит от вас формат строки даты.

Я сделал это для этой моей проблемы..

Спасибо всем...

public static String convertLongToStringDate(String dateTime) {
    String dateString=null;
    Long l=Long.parseLong(dateTime);
    try {
        Date date=new Date(l);
        DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
        dateString = sdf.format(date);
    } catch (Exception e) {
        return dateString;
    }
    return dateString;
}
Другие вопросы по тегам