Вставка текущей даты и времени в базу данных SQLite
Я хочу создать таблицу в SQLite, в которой одно из полей - дата, в которой дата и время текущего экземпляра должны сохраняться. Какой тип данных я должен использовать?
Я планирую использовать "timestamp". Как вставить текущее значение временной метки в поле? Также как писать значения содержимого для этого поля даты?
Ответы
Ответ 1
SQLite поддерживает стандартные переменные SQL CURRENT_DATE
, CURRENT_TIME
и CURRENT_TIMESTAMP
:
INSERT INTO Date (LastModifiedTime) VALUES(CURRENT_TIMESTAMP)
По умолчанию тип данных для дат/времени в SQLite - TEXT
.
ContentValues
не позволяют использовать общие выражения SQL, только фиксированные значения, поэтому вам нужно прочитать текущее время в Java:
cv.put("LastModifiedTime",
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
Ответ 2
INSERT INTO Date (LastModifiedTime) VALUES(DateTime('now'))
Используйте этот сайт для дальнейшей справки.
Ответ 3
Я использую timestamps много в моем приложении. Для меня лучший способ сохранить временную метку - преобразовать ее в миллисекундах. После этого легко преобразовать его в любую локаль.
Если вам нужно текущее время, используйте System.currentTimeMillis().
Значения контента просты в использовании, вы просто и поле и значение, например:
ContentValues ins_reminder = new ContentValues();
ins_reminder.put("REMIND_TIMESTAMP", System.currentTimeMillis());