Apakah ada tipe Long di SQLite?


Jawaban:


220

Dari dokumen SQLite

INTEGER . Nilainya adalah bilangan bulat bertanda, disimpan dalam 1, 2, 3, 4, 6, atau 8 byte tergantung pada besarnya nilai.

Karena long8 byte dan INTEGERjuga dapat menyimpan nilai 8 byte, Anda dapat menggunakan INTEGER.


1
saya memasukkan 1549251913000 dan ketidakcocokan saat mendapatkannya dari SQLite
Nanda Z

Harap periksa apakah Anda salah mengetik transmisi ke int, pastikan Anda menggunakan durasi panjang.
Inder Kumar Rathore

20

Buat kolom sebagai INTEGERtipe:

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

Letakkan longnilai di INTEGERkolom:

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

Penting: ambil nilai dari kursor sebagaiLONG

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


5

Anda tinggal menentukan kolom dengan tipe Integer. SQLite menyetel panjang kolom menjadi 1,2,4,8 tergantung pada masukan Anda.



3

SQLIte akan mengatur lebar integer yang sesuai tergantung pada masukan Anda


0

yang INTEGER dapat menyimpan lama tapi untuk mendapatkan panjang dari kursor harus melakukan seperti ini:

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

saya menggunakan ini untuk menyimpan cap waktu di sqlite

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.