Какие типы данных в SQLite поддерживают Android

56

Может кто-нибудь скажет мне СПИСОК ДАТАТИПОВ в SQLITE, поддерживающий ANDROID.

Я хочу подтвердить типы данных TIME и DATE.

Теги:
types

4 ответа

41

Вот список типов данных SQLite

TIME и DATE поддерживаются косвенно.

  • 7
    поддерживается косвенно?
  • 1
    Я думаю, что дата и время могут быть вставлены только в виде строки
Показать ещё 1 комментарий
30

Как сказано в Типы данных в SQLite версии 3:

Каждое значение, хранящееся в базе данных SQLite (или управляемое механизмом базы данных), имеет один из следующих классов хранения:

  • NULL. Значение - значение NULL.

  • INTEGER. Значение представляет собой целое число со знаком, сохраненное в 1, 2, 3, 4, 6 или 8 байтах в зависимости от величины значения.

  • РЕАЛ. Значение представляет собой значение с плавающей запятой, которое хранится как 8-байтовое число с плавающей точкой IEEE.

  • ТЕКСТ. Значение представляет собой текстовую строку, хранящуюся с использованием кодировки базы данных (UTF-8, UTF-16BE или UTF-16LE).

  • BLOB. Значение представляет собой блок данных, сохраненный точно так, как он был введен.

И для хранения TIME и DATE указано следующее:

Дата и время Тип данных

SQLite не имеет класса хранения, зарезервированного для хранения дат и/или времени. Вместо этого встроенные функции даты и времени SQLite способны хранить даты и время как значения TEXT, REAL или INTEGER:

  • ТЕКСТ как строки ISO8601 ( "ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС" ).
  • REAL как число юлианских дней, количество дней с полудня в Гринвиче 24 ноября 4714 г. B.C. согласно предсказательному григорианскому календарю.
  • INTEGER как Unix Time, количество секунд с 1970-01-01 00:00:00 UTC.
1

Прежде всего, проверьте версию Sqlite3 для каждой версии API для Android: https://stackoverflow.com/questions/2421189/version-of-sqlite-used-in-android

Я не думаю, что это полный список версий, и я думаю, что OEM также может изменить версию SQLite, установленную внутри.

В любом случае, если вы посмотрите быстро, вы увидите, что базовая версия - 3.x

Это список поддерживаемых типов данных SQLite3 (тот же, что используется внутри android): http://www.sqlite.org/datatype3.html

и вот вы:)

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню