Digamos, tenemos una tabla creada como:
create table notes (_id integer primary key autoincrement, created_date date)
Para insertar un registro, usaría
ContentValues initialValues = new ContentValues();
initialValues.put("date_created", "");
long rowId = mDb.insert(DATABASE_TABLE, null, initialValues);
Pero, ¿cómo configurar la columna date_created ahora ? Para dejarlo claro, el
initialValues.put("date_created", "datetime('now')");
No es la solución adecuada. Simplemente establece la columna en texto "datetime ('ahora')".
android
sqlite
content-values
droide
fuente
fuente
Respuestas:
No puede utilizar la función de fecha y hora utilizando el contenedor Java "ContentValues". O puedes usar:
SQLiteDatabase.execSQL para que pueda ingresar una consulta SQL sin procesar.
O las capacidades de fecha y hora de Java:
fuente
En mi código utilizo
DATETIME DEFAULT CURRENT_TIMESTAMP
como tipo y restricción de la columna.En su caso, la definición de su tabla sería
fuente
Método 1
Método 2
Método 3 Uso de funciones de fecha de Java
fuente
Hay un par de opciones que puede utilizar:
fuente
ContentValues
yupdate()
, simplemente coloca la cadenaDATETIME('now')
en la columna.DEFAULT CURRENT_TIMESTAMP
y luego uséSystem.currentTimeMillis()
para actualizar. Veo una diferencia de hora.Para mí, el problema parece que estás enviando
"datetime('now')"
como una cadena, en lugar de un valor.Mi pensamiento es encontrar una manera de tomar la fecha / hora actual y enviarla a su base de datos como un valor de fecha / hora, o encontrar una manera de usar la función incorporada de SQLite
(DATETIME('NOW'))
parámetroConsulte las respuestas en esta pregunta de SO.com ; pueden en la dirección correcta.
¡Ojalá esto ayude!
fuente
Puede usar la función de java que es:
De esta forma, en tu db guardas un número.
Este número podría interpretarse de esta manera:
En lugar de l en la nueva Fecha (l), debe insertar el número en la columna de la fecha.
Entonces, tienes tu cita.
Por ejemplo, guardo en mi base de datos este número: 1332342462078
Pero cuando llamo al método anterior, tengo este resultado: 21-mar-2012 16.07.42
fuente
Basado en la respuesta de @ e-satis, creé un método privado en mi clase "DBTools", por lo que agregar la fecha actual ahora es realmente fácil:
Úselo ahora así:
values.put("lastUpdate", getNow());
fuente
Funciona para mi perfecto:
Guarde su fecha como un largo.
fuente
Este ejemplo de código puede hacer lo que quieras:
http://androidcookbook.com/Recipe.seam?recipeId=413
fuente
Asegúrese de que el campo no esté marcado como 'no nulo' al mismo tiempo que intenta insertar una marca de tiempo predeterminada con la expresión "(DATETIME ('ahora'))"
fuente