¿Hay tipo Long en SQLite?

125

Quiero crear una tabla con el tipo de columna en Longlugar de Integer. ¿Es posible?

Alex Kapustian
fuente

Respuestas:

220

De los documentos de SQLite

INTEGER . El valor es un entero con signo, almacenado en 1, 2, 3, 4, 6 u 8 bytes, dependiendo de la magnitud del valor.

Como longes de 8 bytes y INTEGERtambién puede guardar valores de 8 bytes, puede usar INTEGER.

Inder Kumar Rathore
fuente
1
Ingresé 1549251913000 y no coinciden al obtenerlo de SQLite
Nanda Z
Por favor, comprueba si escribes por error para transmitirlo int, asegúrate de usarlo durante mucho tiempo.
Inder Kumar Rathore
20

Cree la columna como un INTEGERtipo:

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

Pon el longvalor en la INTEGERcolumna:

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

Importante: recupere el valor del cursor comoLONG

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

Simplemente define una columna con el tipo Entero. SQLite establece la longitud de la columna en 1,2,4,8 dependiendo de su entrada.

Shnkc
fuente
3

SQLIte establecerá un ancho entero adecuado dependiendo de su entrada

DarkTemple
fuente
0

del INTEGER puede almacenar el tiempo , pero para obtener larga del cursor debe hacer como esto:

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

lo uso para almacenar la marca de tiempo en sqlite

Criss
fuente