Скажем, у нас есть таблица, созданная как:
create table notes (_id integer primary key autoincrement, created_date date)
Чтобы вставить запись, я бы использовал
ContentValues initialValues = new ContentValues();
initialValues.put("date_created", "");
long rowId = mDb.insert(DATABASE_TABLE, null, initialValues);
Но как установить столбец date_created на now ? Чтобы было понятно,
initialValues.put("date_created", "datetime('now')");
Не правильное решение. Он просто устанавливает в столбце текст «datetime ('now')».
android
sqlite
content-values
дроид
источник
источник
Ответы:
Вы не можете использовать функцию datetime с помощью оболочки Java ContentValues. Либо вы можете использовать:
SQLiteDatabase.execSQL, чтобы вы могли ввести необработанный SQL-запрос.
Или возможности Java Date Time:
источник
В моем коде я использую
DATETIME DEFAULT CURRENT_TIMESTAMP
как тип и ограничение столбца.В вашем случае определение вашей таблицы будет
источник
Способ 1
Способ 2
Метод 3 с использованием функций даты Java
источник
Вы можете использовать несколько вариантов:
источник
ContentValues
иupdate()
, он просто помещает строкуDATETIME('now')
в столбец.DEFAULT CURRENT_TIMESTAMP
а потом использовалSystem.currentTimeMillis()
для обновления. Я вижу разницу в час.Для меня проблема выглядит так, будто вы отправляете
"datetime('now')"
строку, а не значение.Моя мысль - найти способ получить текущую дату / время и отправить ее в вашу базу данных как значение даты / времени или найти способ использовать встроенный SQLite
(DATETIME('NOW'))
параметрОзнакомьтесь с ответами на этот вопрос SO.com - они могут привести вас в правильном направлении.
Надеюсь, это поможет!
источник
Вы можете использовать функцию java:
Таким образом, вы сохраняете в своей базе данных число.
Это число можно интерпретировать так:
Вместо l в новую дату (l) вы должны вставить число в столбец даты.
Итак, у вас есть свидание.
Например, я сохраняю в своей базе данных этот номер: 1332342462078
Но когда я вызываю указанный выше метод, я получаю следующий результат: 21 марта 2012 г. 16.07.42
источник
Основываясь на ответе @ e-satis, я создал частный метод в моем классе "DBTools", поэтому добавить текущую дату теперь очень просто:
Используйте его сейчас так:
values.put("lastUpdate", getNow());
источник
У меня работает идеально:
Сохраните дату как длинную.
источник
Этот пример кода может делать то, что вы хотите:
http://androidcookbook.com/Recipe.seam?recipeId=413
источник
Убедитесь, что поле не помечено как «не нулевое» одновременно с тем, как вы пытаетесь вставить метку времени по умолчанию, используя выражение «(DATETIME ('now'))»
источник