SQLite中是否有Long类型?

12 浏览
0 Comments

SQLite中是否有Long类型?

我想创建一个使用Long类型而不是Integer类型的表。这是否可能?

0
0 Comments

SQLite中没有long类型,可以使用INTEGER或Numeric类型代替。下面是一个包含支持的数据类型的链接:http://www.sqlite.org/datatype3.html

解决方法:使用INTEGER或Numeric类型代替long类型。

0
0 Comments

在SQLite中,没有直接的"Long"类型,只有"INTEGER"类型。因此,如果我们想在SQLite中存储"long"类型的值,需要将其存储为"INTEGER"类型。这个问题的解决方法是创建一个"INTEGER"类型的列,并将"long"类型的值存储在这个列中。

具体的解决方法如下:

1. 使用db.execSQL方法创建表时,将列的类型设为"INTEGER":

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

2. 将"long"类型的值存储在"INTEGER"类型的列中:

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

3. 当从游标中检索值时,使用getLong方法获取"long"类型的值:

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

与直接使用"INTEGER"类型相比,这种方法的不同之处在于,我们需要将"long"类型的值存储在"INTEGER"类型的列中,并且在从游标中检索值时,需要使用getLong方法来获取"long"类型的值。这样可以确保在SQLite中正确存储和检索"long"类型的值。

0
0 Comments

在SQLite文档中,它指出了数据类型INTEGER可以存储1、2、3、4、6或8字节的有符号整数,具体取决于数值的大小。由于long类型占据8字节,而INTEGER类型也可以保存8字节的值,所以可以使用INTEGER类型来存储long类型的值。

然而,当用户将一个值为1549251913000的long类型数据存储到SQLite中,并从SQLite中获取该值时,发生了不匹配的问题。为了解决这个问题,需要检查是否错误地将其类型转换为int,确保在整个过程中始终使用long类型。这样可以保证数据在存储和读取过程中的一致性。

0