【问题标题】:Ruby date comparison红宝石日期比较
【发布时间】:2011-09-23 17:22:27
【问题描述】:

@student = Student.find(:all, :conditions => {:school_id => school.id,:created_at => Date.today })
我需要编写这个 ruby​​ 查询来检索学校中的所有学生,哪些学生的创建日期应该是同一天。
但是这给出了零值。当我使用“if”条件时,我可以使用if created_at.to_date == Date.today.to_date
所以我的问题是如何将日期时间格式的符号(:created_at)转换为日期格式。 (意思是,这里 Student.find(.., :created_at.to_date => Date.today.to_date) 是不可能的,有什么替代方法)

【问题讨论】:

    标签: ruby-on-rails ruby symbols


    【解决方案1】:

    部分技巧在于created_at 是时间值,而不是日期值。 this StackOverflow answer to a similar question 推荐的解决此问题的一种方法是在查询期间将 created_at 值转换为日期:

    school.students.all(:conditions => ["DATE(created_at) = DATE(?)", Time.now])
    

    (请注意,我重构了查询以使用学校的has_many :students 关系。)

    【讨论】:

      猜你喜欢
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多