Чи існує тип Long у SQLite?


Відповіді:


220

Від документів SQLite

ІНТЕГЕР . Значення - це підписане ціле число, яке зберігається в 1, 2, 3, 4, 6 або 8 байтах залежно від величини значення.

Оскільки longце 8 байт і INTEGERможе також зберігати значення 8 байт, ви можете використовувати INTEGER.


1
Я ввожу 1549251913000 і невідповідність при отриманні його від SQLite
Nanda Z

Будь ласка, перевірте, чи помилково ви вводите його на кастинг int, і переконайтесь, що ви використовуєте довго протягом усього.
Inder Kumar

20

Створіть стовпець як INTEGERтип:

db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
                + KEY + " INTEGER" + ")");

Поставте longзначення у INTEGERстовпчик:

contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);

Важливо: отримайте значення з курсору якLONG

Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);


5

Ви просто визначите стовпець з типом Integer. SQLite встановлює довжину стовпця до 1,2,4,8 залежно від вашого вкладу.



3

SQLIte встановить відповідну цілу ширину залежно від вашого введення


0

INTEGER може зберігати довго , але , щоб отримати довгі від курсора повинні зробити так:

int type = cursor.getType(j);

String value = cursor.getString(j);
try {
       int intValue = Integer.parseInt(value);
       field.set(object, intValue);
    } catch (NumberFormatException e) {
       long longValue = Long.parseLong(value);
       field.set(object, longValue);
}

Я використовую це для зберігання часових позначок у sqlite

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.