2013-04-20 64 views
0

我有一個這樣的定義的表之間: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

回答

0
> 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

0

您可以嘗試使用此

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

今天是今天的日期

相關問題