SQLite中是否有Long类型?


Answers:


220

SQLite文档

整数。该值是一个有符号整数,根据值的大小存储在1、2、3、4、6或8个字节中。

由于long是8个字节,并且INTEGER还可以保存8个字节的值,因此可以使用INTEGER


1
我输入1549251913000,并从SQLite中获取时不匹配
Nanda Z

请检查您是否错误地将其强制转换为int,以确保您使用了很长时间。
Inder Kumar Rathore,

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。




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中存储时间戳

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.