2011-10-25 31 views
0

我構建了我的簡單博客系統,系統中的每篇文章都有兩個輸入用於設置,從文章中可以看到訪客,第二個輸入是日期,直到會被訪問。Rails 3&ActiveRecord - 關於日期的sql查詢

例如,如果我將這個輸入值

2011-10-25 2011-10-28和,所以這意味着,文章將是可見的3天。如果我想讓一篇文章仍然可見,那麼我想在輸入值爲0000-00-00。

但現在我想如何使一個SQL查詢 - 我嘗試類似:

Article.where('from_date <= ? AND to_date >= ?', Func.today, Func.today) 

這工作我,如果我設置了一個日期,從直等到我想有可見的文章。但是,如果我將設置,我希望有一篇文章可見每次(0000-00-00),所以這個查詢不起作用...

我想問你有關提示,如何更新SQL查詢以上吧......

由於提前,

曼尼

回答

2

而不是設置日期字段爲全零的,將其設置爲無,尋找查詢空值。

Article.where('(from_date IS NULL OR from_date <= ?) AND (to_date IS NULL OR to_date >= ?)', Func.today, Func.today) 
+0

感謝您的回覆Douglas。這是我生成的查詢:'SELECT articles。* FROM articles WHERE((from_date IS NULL OR from_date <='2011-10-25')AND(to_date IS NULL OR to_date> ='2011-10-25')) - 我設定我想從10月28日顯示一篇文章(在數據庫中是值** 2011-10-28 **) - 但文章仍然顯示(現在已經) – user984621

+0

@ user984621將from_date設置爲2011-10 -28,to_date爲null – clyc