mysql - Rails 3 和 ActiveRecord - 关于日期的 sql 查询

标签 mysql ruby-on-rails-3 datetime activerecord date

我构建了我的简单博客系统,系统中的每篇文章都有两个用于设置的输入,从该输入开始,该文章将对访问者可见,第二个输入是日期,直到被访问为止。

例如,如果我将设置为此输入值

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查询...

提前致谢,

曼尼

最佳答案

不要将日期字段设置为全零,而是将它们设置为 nil 并在查询中查找空值。

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

关于mysql - Rails 3 和 ActiveRecord - 关于日期的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883339/

相关文章:

mysql - 如何在mysql中使用if条件检查变量

c# - 如何将 Access 2007 DateTime 转换为 mysql 日期时间格式?

java - 在 Java 中对月份和年份进行排序的最有效方法

mysql - 按 2 个月的时间段对出生日期进行分组

mysql - 顶级协作者 MySQL

ruby-on-rails - Stylesheet_link_tag :all versus :media =>all

ruby-on-rails - Rails 3 和干净的 URL

java - Base64 从 Android/Java 上传到 RoR Carrierwave

php - 如何在 PHP 中增加 MySQL 时间戳?

php - TIMEDIFF 函数不起作用