如何将日期从datepicker存储到sqlite?

时间:2017-05-26 05:07:24

标签: android date sqlite android-sqlite

我的代码是:

 taskDB.insertDate(selectedDate,selectedId);

SQlite DB:

String sql = "CREATE TABLE IF NOT EXISTS " +TABLE_NAME+ "(" +KEY_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +KEY_TASKNAME+ " TEXT, " +KEY_STATUS+ " INTEGER," +KEY_FAV+ " INTEGER," +KEY_DATE+ " TEXT"+")";
    db.execSQL(sql);

插入查询:

public void insertDate(String date, int id){
    String sql = "UPDATE task SET date = "+date+" WHERE id = " +id;
    SQLiteDatabase db = this.getWritableDatabase();
    Log.d(TAG,"id is:" +id+ ", date is: "+date);// log is below
    db.execSQL(sql);
}

日志:

05-26 10:23:14.538 15298-15298/? D/TaskDB: id is:2, date is: 17-05-2017

在插入查询的日志中,我得到了从datepicker中选择的正确日期,但在表格中它的格式不同。This是插入后sqlite表的屏幕截图日期

2 个答案:

答案 0 :(得分:0)

更改此类查询,然后重试

@connect

我更改了将日期放在单引号中,每当您在查询中添加字符串值时,都需要将它们放在单引号中。

答案 1 :(得分:0)

作为commented,您需要在date周围加上单引号来表示字符串,例如

"UPDATE task SET date = '"+date+"' WHERE id = " +id;
//                      ^        ^

来自docs

  

通过将字符串括在单引号中形成字符串常量   (&#39)。字符串中的单引号可以通过放置两个来编码   连续单引号 - 如Pascal。 C风格逃脱使用   不支持反斜杠字符,因为它们不是标准字符   SQL。