在where子句中使用datetime执行delete语句

时间:2014-06-10 14:23:58

标签: android sqlite

在我的android应用程序中,我在具有datetime列的表中执行一些插入操作。要在该列中创建数据到inserd,我使用以下代码:

Date d = new Date((new Date()).getTime()+60000);
String exDate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.ITALY).format(d);

我已经在我的表的DATETIME列(名为timestamp)中添加了这个String。

现在我想在该表中执行查询,该查询删除时间戳列中的日期大于给定日期的所有行。像这样:

DELETE FROM mytable WHERE timestamp > mydate

我试图在delete(String table, String whereClause, String[] whereArgs)库中使用SQLiteDatabase方法。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,使用String作为日期时间字段是一个糟糕的选择。请改用long。 Android可以根据Unix Epoch创建/设置DateCalendar个对象,并且比较sqlLite中的long是轻而易举的。

所以是的,我的答案是:更改SQL create语句以使用INTEGER而不是TEXT,您可以轻松调用您尝试执行的delete语句。