Ответ 1
Теперь сначала спросите, что такое правильный синтаксис для объявления столбца даты.
В Документация типов данных SQLite:
1.2 Дата и время Тип данных
SQLite не имеет класса хранения, зарезервированного для хранения дат и/или времени. Вместо этого встроенные функции даты и времени SQLite могут хранить даты и время как значения TEXT, REAL или INTEGER:
- ТЕКСТ как строки ISO8601 ( "ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС" ).
- REAL как число юлианских дней, количество дней с полудня в Гринвиче 24 ноября 4714 г. B.C. согласно предсказательному григорианскому календарю.
- INTEGER как Unix Time, количество секунд с 1970-01-01 00:00:00 UTC.
Приложения могут выбирать даты и время в любом из этих форматов и свободно конвертировать между форматами, используя встроенные функции даты и времени.
Возьмите свой выбор. Я бы пошел в TEXT или INTEGER. INTEGER будет быстрее. Если вам нужно хранить даты в 1970 году (например, даты рождения и т.д.), Я бы пошел на ТЕКСТ. Если вам просто нужно сохранить время создания/время модификации и т.д. В настоящее время и в будущем, перейдите к INTEGER.
Вторым я хочу знать, как вставить в него дату после этого.
Используйте PreparedStatement#setString()
или #setLong()
соответственно.
И третья вещь, которую я хочу знать, - это выбрать даты между ними, например, чтобы выбрать все строки, которые содержат дату между 01/05/2010 и 05/06/2010.
Используйте для этого стандартное предложение SQL BETWEEN
. Сначала вам нужно преобразовать дату, используя встроенные функции даты и времени.