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