【问题标题】:Sqlite update DATETIME field not workingSqlite 更新 DATETIME 字段不起作用
【发布时间】:2013-12-04 12:44:54
【问题描述】:

我正在尝试使用以下查询更新 Sqlite 表中的 DATETIME 列。

String query = "UPDATE myTable SET displayed = datetime('now') where _id = " + id;
database.rawQuery(query, null);

我已经在设备和模拟器上测试过,但它不起作用,它没有更新列中的值。

PS:我在 Sqlite 浏览器中尝试了相同的查询,它在那里工作。

请帮我想办法。

谢谢。

【问题讨论】:

  • 不工作?你有错误吗?
  • 没有错误,字段值保持不变!
  • 使用database.execSQL()怎么样?
  • 让我试一试。
  • 我认为你的问题是你的非转义引号。 datetime('now') 应该是 datetime(\'now\')

标签: android sqlite android-sqlite


【解决方案1】:

如果执行没有返回任何数据,请使用execSQL(),而不是使用rawQuery()

String query = "UPDATE myTable SET displayed = datetime('now') where _id = " + id;
database.execSQL(query);

虽然只是一个提示,但如果您真的想在未来存储和处理日期,最好使用 UNIX 时间。它将更加灵活和标准化。

【讨论】:

  • 能否解释一下如何在 UNIX 时间,我会做出所需的更改,只是给我提示?谢谢
  • UNIX 时间是 UTC/GMT 从 1970-1-1 开始的毫秒,所以基本上你将存储一个数字 (long) 而不是文本(尽管它在 SQLite 中并不重要,因为它是无类型的)。要获取当前时间,有一些方法。一些例子是new Date().getTime()Calendar.getInstance().getTimeInMillis()。稍后,如果你想拥有日期的文本表示,可以使用DateFormatSimpleDateFormat 类作为助手。
  • 我明白了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
  • 2013-04-02
相关资源
最近更新 更多