qaru.site/info/4012/..., которые цитируют тот же раздел документации (следующим образом):
SQLite не имеет класса хранения, зарезервированного для хранения дат и/или времени. Вместо этого встроенные функции даты и времени SQLite способны хранить даты и время как значения TEXT, REAL или INTEGER:
- ТЕКСТ как строки ISO8601 ( "ГГГГ-ММ-ДД ЧЧ: ММ: SS.SSS" ).
- REAL, как число юлианских дней, количество дней с полудня в Гринвиче 24 ноября 4714 г. B.C. согласно пролептическому григорианскому календарю.
- INTEGER as Unix Time, количество секунд с 1970-01-01 00:00:00 UTC.
Приложения могут выбирать даты и время в любом из этих форматов и свободно конвертировать между форматами, используя встроенные функции даты и времени.
Однако я думаю, что некоторые люди (вопросники и ответчики) путают или опускают следующую информацию о создании таблицы, где DateTime на самом деле является NUMERIC внутри и должен быть создан как DATETIME или ЧИСЛО, чтобы избежать проблем с производительностью, относящихся к кастингу.
Возможно, я что-то недопонимаю, но я вижу ответы там, где люди говорят о создании столбца TEXT для datetime, что не кажется эффективным.
Вопрос
Учитывая, что я могу запросить столбец datetime как TEXT, REAL или INTEGER, что является наиболее эффективным способом обработки datetimes, тем более, что столбец DATETIME приводит к NUMERIC.
-
Имеет ли тип columnType из NUMERIC/DateTime задерживающие литье из-за сравнения TEXT, REAL или Integer?
-
Может ли тип столбца TEXT и тип запроса TEXT для SQLite быть быстрее?
-
Может ли REAL тип столбца и тип запроса REAL для SQLite быть быстрее?
-
Может ли быть тип столбца INTEGER и тип запроса INTEGER для SQLite быстрее?
-
Как бы преобразовать DATETIME в NUMERIC для более быстрых запросов?