【问题标题】:android: compare date with databaseandroid:将日期与数据库进行比较
【发布时间】:2012-03-13 15:57:22
【问题描述】:

我很难将我的 android 操作系统的日期与手机上我的 sqlite 数据库中存储的日期进行比较。目标是:我想选择早于今天的日期的所有行。

这就是我获得日期的方式 - 公园有效:

  android.text.format.DateFormat df = new android.text.format.DateFormat();
  String datum = df.format("yyyy-MM-dd", new java.util.Date()).toString ();

对于我数据库中的每一行,我将日期存储为 TEXT。例如2012-01-31 (yyyy-MM-dd)。

我想,我可以使用“小于”(

有什么想法吗?或者 - 你会如何解决这个问题?

提前致谢! 马可

【问题讨论】:

  • 保存日期越长越方便比较
  • 使用日期或长数据类型。
  • @Eric 我同意长格式更有意义,但考虑到他使用的格式字符串,字符串比较也应该起作用。如果他们似乎没有这样做,几乎可以肯定这里还有其他事情发生(例如,另一个遇到类似问题的人最近在他们的“时间戳”字段中有一些垃圾数据)。
  • 我想用long,但是数据是以给定的格式提供给我的。所以我认为将日期存储为文本会更容易。反正我会试一试的。谢谢!

标签: android database datetime


【解决方案1】:

对我来说很好。

$ sqlite3
sqlite> CREATE TABLE date_test(date DATE);
sqlite> INSERT INTO date_test VALUES('2012-01-01');
sqlite> INSERT INTO date_test VALUES('2012-02-01');
sqlite> INSERT INTO date_test VALUES('2012-03-01');
sqlite> SELECT date FROM date_test WHERE date < '2012-02-15';
2012-01-01
2012-02-01

您能否提供行为不符合您预期的具体测试数据?

【讨论】:

  • arrrgh。它没有意义——现在它有了。我在数据库中存储了垃圾数据。我用一种格式填充了一个新数据库,现在它可以工作了。感谢您的洞察力!
猜你喜欢
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 2019-06-02
  • 1970-01-01
相关资源
最近更新 更多