Katakanlah, kami memiliki tabel yang dibuat sebagai:
create table notes (_id integer primary key autoincrement, created_date date)
Untuk memasukkan catatan, saya akan menggunakan
ContentValues initialValues = new ContentValues();
initialValues.put("date_created", "");
long rowId = mDb.insert(DATABASE_TABLE, null, initialValues);
Tetapi bagaimana cara mengatur kolom date_created menjadi sekarang ? Untuk membuatnya jelas, file
initialValues.put("date_created", "datetime('now')");
Bukan solusi yang tepat. Ini hanya menyetel kolom ke teks "datetime ('now')".
android
sqlite
content-values
droidguy
sumber
sumber
Jawaban:
Anda tidak dapat menggunakan fungsi datetime menggunakan "ContentValues" pembungkus Java. Anda dapat menggunakan:
SQLiteDatabase.execSQL sehingga Anda dapat memasukkan kueri SQL mentah.
Atau kemampuan waktu tanggal java:
sumber
Dalam kode saya, saya gunakan
DATETIME DEFAULT CURRENT_TIMESTAMP
sebagai jenis dan batasan kolom.Dalam kasus Anda, definisi tabel Anda adalah
sumber
Metode 1
Metode 2
Metode 3 Menggunakan fungsi Java Date
sumber
Ada beberapa opsi yang dapat Anda gunakan:
sumber
ContentValues
danupdate()
, itu hanya menempatkan stringDATETIME('now')
di kolom.DEFAULT CURRENT_TIMESTAMP
dan kemudian digunakanSystem.currentTimeMillis()
untuk memperbarui. Saya melihat perbedaan satu jam.Bagi saya, masalahnya terlihat seperti Anda mengirim
"datetime('now')"
sebagai string, bukan nilai.Pikiran saya adalah menemukan cara untuk mengambil tanggal / waktu saat ini dan mengirimkannya ke database Anda sebagai nilai tanggal / waktu, atau menemukan cara untuk menggunakan
(DATETIME('NOW'))
parameter built-in SQLiteLihat jawaban di pertanyaan SO.com ini - mereka mungkin mengarahkan Anda ke arah yang benar.
Semoga ini membantu!
sumber
Anda bisa menggunakan fungsi java yaitu:
Dengan cara ini, di db Anda, Anda menyimpan nomor.
Angka ini dapat diartikan sebagai berikut:
Alih-alih l ke dalam Tanggal baru (l), Anda harus memasukkan nomor tersebut ke dalam kolom tanggal.
Jadi, kamu sudah punya teman kencan.
Misalnya saya menyimpan di db saya nomor ini: 1332342462078
Tetapi ketika saya memanggil metode di atas saya mendapatkan hasil ini: 21-mar-2012 16.07.42
sumber
Berdasarkan jawaban @ e-satis saya membuat metode pribadi di kelas "DBTools" saya jadi menambahkan tanggal sekarang sangat mudah:
Gunakan sekarang seperti ini:
values.put("lastUpdate", getNow());
sumber
Bekerja untuk saya dengan sempurna:
Simpan tanggal Anda sebagai lama.
sumber
Contoh kode ini dapat melakukan apa yang Anda inginkan:
http://androidcookbook.com/Recipe.seam?recipeId=413
sumber
Pastikan bidang tersebut tidak ditandai sebagai 'bukan nol' pada saat yang sama saat Anda mencoba memasukkan stempel waktu default menggunakan ekspresi "(DATETIME ('now'))"
sumber