【问题标题】:Rails hstore value based queryRails hstore 基于值的查询
【发布时间】:2016-05-17 18:30:24
【问题描述】:

我想查询 PG 数据库上的 hStore 列并仅返回与特定键和值对应的值。 hstore 列包含以下方式的信息

hours: {"tue_1_open"=>"19:30", "tue_1_close"=>"21:45"}

我可以根据key和value进行如下查询

Model.where("hours @> hstore(:key,:value )", key: "tue_1_open", value: "19:30")

但我想查询谁的值大于特定时间。我想查询类似

Model.where("hours @> hstore(:key,:value )", key: "tue_1_open", value: ">= 19:30")

知道我们如何实现这一目标吗?

【问题讨论】:

    标签: ruby-on-rails postgresql hstore


    【解决方案1】:

    您可以尝试以整数而不是时间获得更大的价值

    Model.where("(hours ? 'tue_1_open')::int > 19")
    

    'tue_1_open' 的日期时间小时值应该是日期时间值

    Model.where("(hours ? 'tue_1_open')::timestamp > Time.now")
    

    【讨论】:

    • 我收到 ActiveRecord::StatementInvalid: PG::UndefinedObject: ERROR: type "datetime" does not exist
    • 也许你的意思是timestamp而不是datetime。
    • 我都试过了,但是我得到了 ActiveRecord::StatementInvalid: PG::CannotCoerce: ERROR: cannot cast type boolean to time without time zone
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2015-01-25
    • 2015-08-12
    • 1970-01-01
    • 2011-09-22
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多