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格式来解决它
谢谢你们!
答
> 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)
+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);
今天是今天的日期
试试这个http://stackoverflow.com/a/7316756/1329126 – 2013-04-20 12:04:56
SELECT NAME FROM MyExercises WHERE date('now')BETWEEN strftime('%s',VALIDFROM)和strftime('%s',VALIDTO) – Nadav 2013-04-20 12:14:34
仍然无效.. – Nadav 2013-04-20 12:14:49