Глядя на уроки на просторах интернета вижу, что добавляют данные в базу используя ContentValues
. Но конструктора принимающего тип Date там нет. Там небольшой список типов данных.
Я хотел создать таблицу, в которой есть столбец с датой и столбец с текстом. Думал поделить дату на 3 столбца. В одном год, в в другом месяц и в третьем дни. Но мне порекомендовали создать один столбец с атрибутом Date. Но как я понял sqLite не поддерживает подобных типов данных.
Хочу уточнить так ли это и как мне лучше поступить, если я создаю таблицу в которой есть разный текст на каждый день в течении нескольких лет.
Есть подозрение, что если добавить дату в таком формате ГГГГ-ММ-ДД в один столбец, то sqlite сможет делать выборку по дате.
Дата в контексте программирования на Java - число миллисекунд после 01.01.1970 00:00 UTC
Именно его и храните в БД для дат. После извлечения из БД объект Date
можно получить просто - Date dateFromDb = new Date(longValueFromDb)
Делать все возможные выборки по дате будет просто - вы будете делать выборки не по каким-то строкам в разных столбцах, но по числу в одном столбце.
Не поддержу категоричность ответа @ЮрийСПб
Согласно документации, SQLite, хотя и не имеет специального типа для хранения даты, но, поддерживает хранение даты и манипуляции с ними в одном из 3-х форматов:
1) TEXT как строку ISO8601 ("YYYY-MM-DD HH:MM:SS.SSS"
).
2) REAL как Юлианский номер дня с 24 ноября, 4714 д.н.э. GMT - согласно пролептическому Григорианскому календарю
3) INTEGER в качестве Unix Time, количество секунд с 1970-01-01 00:00:00 UTC
.
Если дата задана в одном из этих 3-х форматов, то поддерживается работа с встроенными в SQLite функциями работы с датами, а также задание в запросах операций >, >=, <, <=, =, between
Отдельно отмечу, что хранение даты в виде строки ISO8601, имеет один небольшой бесплатный бонусик, а именно становится возможным сохранение часового пояса в дате, чего как вы понимаете нет, когда мы храним UNIX time - иногда это важно.
Минусы, конечно же понятны: оверхед в хранении строки и лишние костЫ в конвертации.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
RecyclerView отображает список CardView с текстом, их можно добавлять и удалятьПроблема вот в чем, я пытаюсь реализовать изменение itema, то есть, на card view по мимо...
Как рисовать на одном Canvas из разных классов? Проблема в том, что при обращении к canvas из разных классов возвращаются разные ссылки