SQLite中支持android的数据types是什么?
任何人都可以告诉我在支持ANDROID的SQLITE中的DATATYPES列表。
我想确认一下TIME和DATE数据types。
这里是SQLite数据types的列表
TIME和DATE 间接支持。
正如在数据types在SQLite版本3中所说:
存储在SQLite数据库(或由数据库引擎操作)中的每个值都具有以下存储类之一:
NULL 。 该值是一个NULL值。
INTEGER 。 该值是一个有符号的整数,根据值的大小存储在1,2,3,4,6或8个字节中。
真的 。 该值是一个浮点值,以8个字节的IEEE浮点数存储。
TEXT 。 该值是一个文本string,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)存储。
BLOB 。 该值是一个数据块,完全按照input进行存储。
对于TIME和DATE存储,说明如下:
date和时间数据types
SQLite没有专门用于存储date和/或时间的存储类。 相反,SQLite的内置date和时间函数能够将date和时间存储为TEXT,REAL或INTEGER值:
- TEXT作为ISO8601string(“YYYY-MM-DD HH:MM:SS.SSS”)。
- 真正的 Julian日数,这是自公元前4714年11月24日格林威治中午以来的天数,根据公历日历。
- INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。
首先检查每个android API版本的Sqlite3版本: https ://stackoverflow.com/a/4377116/737636
我不认为这是完整的版本列表,我认为OEM也可以改变里面安装的SQLite的版本。
无论如何,如果你快速浏览,你可以看到基本版本是3.x
这是由SQLite3支持的数据types列表(与android中使用的相同): http : //www.sqlite.org/datatype3.html
在这里你是:)
public static Object getValue(Cursor cursor, String columnName) { int index = cursor.getColumnIndex(columnName); if(index == -1){ throw new ColumnNotFoundException(columnName, "table"); } if(cursor.isNull(index)){ return null; } int type = cursor.getType(index); switch (type){ case Cursor.FIELD_TYPE_INTEGER: return cursor.getLong(index); case Cursor.FIELD_TYPE_STRING: return cursor.getString(index); case Cursor.FIELD_TYPE_FLOAT: return cursor.getFloat(index); case Cursor.FIELD_TYPE_BLOB: return cursor.getBlob(index); default: throw new UnknownTypeException(columnName); } }