sqlite的 - 检查如果今天是2个日期

问题描述:

我有一个这样的定义的表之间:sqlite的 - 检查如果今天是2个日期

db.execSQL("CREATE TABLE IF NOT EXISTS MyExercises (ID INTEGER, NAME VARCHAR, DESCRIPTION VARCHAR, VIDEONAME VARCHAR, IMAGENAME VARCHAR, VALIDFROM SMALLDATETIME, VALIDTO SMALLDATETIME, NUMOFREPS INTEGER, PRIMARY KEY(ID, VALIDFROM, VALIDTO));"); 

,我要检查,如果今天是VALIDFROM和VALIDTO之间。

当我将数据插入到表的日期是这样的。例如:2013年4月7日12:00:00 AM,第4 /二千○十三分之二十七12:00:00 AM

INSERT INTO MyExercises VALUES (1,'blalbla','blabla', 'ex1.3gp', 'ex1.jpg', '4/7/2013 12:00:00 AM', '4/27/2013 12:00:00 AM' ,5) 

但此查询:

"SELECT NAME FROM MyExercises WHERE date('now') BETWEEN VALIDFROM AND VALIDTO" 

不日期间,从和返回任何东西,即使今天..

================== ==================================================

通过将所有数据更改为YYYY-MM-DD格式来解决它

谢谢你们!

+0

试试这个http://stackoverflow.com/a/7316756/1329126 – 2013-04-20 12:04:56

+0

SELECT NAME FROM MyExercises WHERE date('now')BETWEEN strftime('%s',VALIDFROM)和strftime('%s',VALIDTO) – Nadav 2013-04-20 12:14:34

+0

仍然无效.. – Nadav 2013-04-20 12:14:49

> 1.Insert two date(from,to) 
> 2.Get all date between "from" and "to" date and store into arraylist or container //this step you may ignore also 
> 3.check condition !from_Date.after(to_Date) 

example

+0

作为一般规则,绝不要在代码中执行某些操作,这些操作可以直接在数据库中完成。为什么?由于数据库可以为您优化许多内容,并且由于您正在使用移动应用程序,因此资源有限制。如果你在数据库中选择'select'并且只获取你实际需要的数据,那么你最好使用它。不要创建大量不必要的对象。 – Darwind 2013-04-20 12:40:51

您可以尝试使用此

db.query("MyExercises", null, TODAY + "BETWEEN ? AND ?", new String[] { 
      VALIDFROM + " 00:00:00", VALIDTO+ " 23:59:59" }, null, null, null, null); 

今天是今天的日期