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

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

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

Вот ЛогКэт

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;
    }

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


person AndyBoy    schedule 22.11.2013    source источник
comment
вы должны указать дату в db в миллисекундах (длинное значение).   -  person Deepanker Chaudhary    schedule 22.11.2013
comment
подскажите пожалуйста как это сделать.????   -  person AndyBoy    schedule 22.11.2013
comment
какую дату строки вы получаете?   -  person Deepanker Chaudhary    schedule 22.11.2013
comment
Вс, 17 ноября 2013 г., 04:06:01 +0000 Это строка   -  person AndyBoy    schedule 22.11.2013


Ответы (2)


Вы можете преобразовать свою строку даты в Long, а затем поместить ее в базу данных: если у вас есть строка даты, например, 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 Зависит от формата строки даты.

person Deepanker Chaudhary    schedule 22.11.2013
comment
сначала преобразуйте дату String в Long и поместите ее в БД. Теперь вы можете использовать простой запрос Выберите * из порядка имен таблиц по имени столбца даты desc Ограничить максимальное количество строк или stackoverflow.com/questions/8051800/ - person Deepanker Chaudhary; 22.11.2013
comment
да, в каком формате вы хотите преобразовать его обратно в строку - person Deepanker Chaudhary; 22.11.2013
comment
Пожалуйста, дайте мне подтверждение: P :) - person AndyBoy; 22.11.2013
comment
привет, сэр, пожалуйста, посмотрите этот вопрос UPDATE часть его всегда возвращает мне 0. - person AndyBoy; 22.11.2013

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

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

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;
}
person AndyBoy    schedule 22.11.2013