Извините, мой английский;
SQLite имеет 5 «Class Storage», которые являются более общими, чем тип данных:
НОЛЬ,
INTEGER (от 1 до 8 байт),
REAL (8 байт, с плавающей точкой),
ТЕКСТ (строки) и
BLOB (или тип / класс не определен).
Другие типы данных были определены с использованием логики для определения «Сродства». Это сходство используется для «преобразования» любого типа только в тезисы 5 классов.
Sqlite см. Тип данных в столбце; Подходим близость; Смотрите значение в сообщении; При необходимости выполните преобразование, и сохраните значение.
Например, TINYCHAR имеет сходство с TEXT, затем будет сохранено как TEXT.
Если вы понимаете логику, вы поймете мост между типами данных.
«3,14» можно сохранить как РЕАЛЬНОЕ или ТЕКСТ
SqLite ищет строки в информированном типе данных при создании coumun / table.
Если в сообщенном типе данных есть «INT» (tinyint, smallint, integer или любое слово с «INT»), значение будет сохранено как INTEGER. Если значение было текстом («10»), оно будет преобразовано в число (10).
Если в имени типа данных нет "INT", то Sqlite будет искать выражения "CHAR", "CLOB" или "TEXT". Если найдено, значение будет сохранено как «ТЕКСТ». Если значение было числом, будет преобразовано в текст.
Если в имени типа данных нет "INT", "CHAR", "CLOB" или "TEXT", то Sqlite будет искать выражение "BLOB". Если был найден «BLOB», значение будет сохранено как NONE (без определенного типа).
Если объявленный тип для столбца содержит какие-либо из строк "REAL", "FLOA" или "DOUB", тогда столбец будет REAL
Если какой-либо из перечисленных выше тестов был верным, будет храниться как NUMERIC (число с плавающей точкой). Если значение было строкой, sqlite попытается выполнить преобразование. Если это целое число или строка, представляющая целое число, будет сохранено как точка с плавающей точкой. (в этом случае есть некоторая оптимизация.
Для даты и времени нет типов спецификаций, но есть некоторые функции для обработки значения.
Если значение было введено как:
ТЕКСТ = как строки ISO8601 («ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС»).
REAL = числа в юлианских днях, количество дней, прошедших с полудня в Гринвиче 24 ноября, 4714 г. до н. согласно пролептическому григорианскому календарю.
INTEGER = как Unix Time, количество секунд с 1970-01-01 00:00:00 UTC.