在SQLite中选择日期大于或等于今天

时间:2016-04-22 03:16:38

标签: android sqlite android-studio android-sqlite

我的日期以WARNING 2016-04-22 03:01:35,068 users_id_token.py:372] Oauth token doesn't include an email address. 格式存储在我的数据库中,我希望只显示日期等于或大于今天的项目。

我已经尝试了WHERE dd/mm/yyyy,但我没有得到任何结果。

以下是我的查询,非常感谢任何帮助

date(fixtures.date) >= date('now')

1 个答案:

答案 0 :(得分:4)

为什么说您的日期以dd / mm / yyyy格式存储?根据{{​​3}}

  

1。2日期和时间数据类型

     

SQLite没有预留用于存储日期和/或时间的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值:

     
      
  1. TEXT as ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。

  2.   
  3. 真实的朱利安日数,即公元前4714年11月24日格林威治中午以来的天数。根据公历格里高利历。

  4.   
  5. INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。

  6.         

    应用程序可以选择以任何格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。

基本上这个查询不起作用

select 1 where '01-08-2016' >= date('now')

但这将

select 1 where '2016-08-01'>= date('now')

因此,您可以验证日期fixtures.date的格式是否为'yyyy-MM-dd',否则您的查询将无效。另外请记住使用date('now', 'localtime')来获取当地时间。

如果您的日期格式正确,您可以尝试执行类似

的操作
SELECT fixtures.id
FROM   fixtures
WHERE  fixtures.date >= date('now')

如果你得到了这个结果,那么连接就不匹配任何一行。

有关详细信息,请查看此SQLite docs