ContentValues将值设置为sql-condition

时间:2011-11-14 09:57:38

标签: android android-contentprovider

当我尝试将一些条件值放入ContentValues变量时,插入为String。

contentValues = new ContentValues();
contentValues.put("DLM", "julianday('now', 'localtime')");

执行

count = db.update(TABLE_NAME, contentValues, selection, selectionArgs);

字段已更新但值不正确。我需要在字段中包含数字日期,而不是字符串。

如果我需要使用计算值更新现有字段,则会出现另一个问题:

UPDATE tbl SET field=field*2

当我把值放在

contentValues.put("field", "field*2");

它将值设为String。我如何才能获得真正需要的价值?

2 个答案:

答案 0 :(得分:1)

我认为你应该使用execSQL方法代替update()方法,它允许你完全控制查询语法。此外,您可以考虑creating triggers而不是计算查询中的字段。

答案 1 :(得分:0)

您需要输入日期,如:

日历cal = Calendar.getInstance();

ContentValues values = new ContentValues();
values.put("DLM", String.format("%1$te-%1$tB-%1$tY",cal));//this will insert date with format 2 July 2011

用于更新fieldValue * 2,

等值

你需要从表中获取较旧的值,然后你需要传递它:

values.put("field_name",new_field_value);