我想创建一个列类型为Long而不是Integer的表。有可能吗?
Long
Integer
soat7uwm1#
来自SQLite文档
整数。该值是一个有符号整数,根据值的大小存储在1、2、3、4、6或8个字节中。
由于long是8字节,INTEGER也可以保存8字节的值,因此可以使用INTEGER。
long
INTEGER
qeeaahzv2#
将列创建为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
LONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null); long value = cursor.getLong(0);
eqqqjvef3#
我不认为有类型长。您可以使用INTEGER(或)Numeric。以下是支持的数据类型http://www.sqlite.org/datatype3.html的链接
bsxbgnwa4#
他上面的链接描述了一个64位整数或本质上是一个长整型,也可以参见What is the difference between SQLite integer data types like int, integer, bigint, etc.?Version of SQLite used in Android?
zazmityj5#
您只需定义一个Integer类型的列。SQLite根据您的输入将列长度设置为1,2,4,8。
bcs8qyzn6#
SQLIte将根据您的输入设置合适的整数宽度
v440hwme7#
INTEGER可以存储long,但要从cursor获取long,应该这样做:
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); }
字符串我用它来存储timestamp在sqlite中
7条答案
按热度按时间soat7uwm1#
来自SQLite文档
整数。该值是一个有符号整数,根据值的大小存储在1、2、3、4、6或8个字节中。
由于
long
是8字节,INTEGER
也可以保存8字节的值,因此可以使用INTEGER
。qeeaahzv2#
将列创建为
INTEGER
类型:字符串
将
long
值放入INTEGER
列:型
**重要提示:**从游标取值为
LONG
型
eqqqjvef3#
我不认为有类型长。您可以使用INTEGER(或)Numeric。以下是支持的数据类型http://www.sqlite.org/datatype3.html的链接
bsxbgnwa4#
他上面的链接描述了一个64位整数或本质上是一个长整型,也可以参见What is the difference between SQLite integer data types like int, integer, bigint, etc.?
Version of SQLite used in Android?
zazmityj5#
您只需定义一个Integer类型的列。SQLite根据您的输入将列长度设置为1,2,4,8。
bcs8qyzn6#
SQLIte将根据您的输入设置合适的整数宽度
v440hwme7#
INTEGER可以存储long,但要从cursor获取long,应该这样做:
字符串
我用它来存储timestamp在sqlite中