【问题标题】:activerecord comparing timesactiverecord 比较时间
【发布时间】:2012-08-11 16:05:04
【问题描述】:

我正在尝试进行查询,将存储在数据库中的时间与当前时间进行比较,如果它大于今天,则显示这些记录。

以下是我当前使用的查询,它不显示任何记录

@schedules = Schedule.where(:team_id => current_user[:team_id], :event => '1', :time => ">= Time.now.zone")

如何根据时间戳返回查询?以便显示这些记录?

也尝试了以下

@schedules = Schedule.find_all_by_team_id_and_event_and_time(current_user[:team_id],"1", :time)

【问题讨论】:

    标签: ruby-on-rails activerecord datetime-comparison


    【解决方案1】:
    @schedules = Schedule.where("team_id = ? and event = ? and time >= ?", [current_user[:team_id], "1", Time.zone.now])
    

    该字符串直接在 SQL 查询中使用,因此您需要确保列名正确且明确(如果您加入另一个也有 team_id 列的表,则需要执行 @ 987654323@)

    【讨论】:

    • 我们的时间存储为“2012 年 8 月 6 日星期一 01:09 am”,如果有办法将其与当前时间进行比较,我认为这会导致一些问题?
    • 为什么你的时间是这样存储的?它不是时间戳或日期时间字段吗?如果它只是一个字符串,则 SQL 将字符串转换为日期以进行比较更复杂。日期/时间实际上应该存储在 rdbms 解释为日期/时间类型的列中。
    • 嗨,deefour,它是这样存储的,所以当我们使用 jquery 时间/日期选择器时,它会保存
    • 我已将我们的字段时间更改为时间戳,但我现在遇到的问题是我无法很好地显示它
    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2011-01-19
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多