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/

相关文章:

jquery - 如何使用 Ajax、Rails 3 和 Devise 创建注册表单?

jquery - 安装 JQuery 时,为什么我的 "delete"链接断开?

silverlight 时区转换

javascript - 使用javascript计算两个日期之间的时间差

mysql - 我该如何调试这个 SQL 错误..?

php - SQL 和 PHP 唯一编号

java - 应用程序引擎的 hibernate 配置

java - Spring Data JPA连接2个表

ruby-on-rails-3 - 以下功能 - 数据库设计问题 - Rails 3

c# - 带有 DateTime 的奇怪 FormatException