gpt4 book ai didi

ruby-on-rails - 在 jsonb postgres 中按日期排序

转载 作者:行者123 更新时间:2023-11-29 11:59:21 24 4
gpt4 key购买 nike

我有一个模型,其中数据以 json 格式存储在 postgres 的 jsonb 列中。

我想使用 activerecord 查询按数据字段对输出进行排序。

Model.all.order("json_data -> 'date'")

给我一个输出,但根据日期字符串按字母顺序排列。

有没有一种简单的方法可以将其排序为日期?

注意:日期格式如下:

"Fri, 24 Jun 2016 04:13:26 -0700"

最佳答案

如果日期格式合理,Postgres 会自动处理。

Model.all.order("(json_data ->> 'date')::timestamp with time zone DESC")

Model.all.order("(json_data ->> 'date')::timestamptz DESC")

如果你的日期字段字符串有点不正统,你可以这样做

Model.all.order("to_timestamp(json_data->>'date','Dy, DD Mon YYYY HH24:MI:SS ') DESC")

详情 here

注意 ->> 输出字符串而不是 json 对象。

您当然可以根据@Uzbekjon 下面的回答创建一个额外的列并将您的信息存储在那里。

关于ruby-on-rails - 在 jsonb postgres 中按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38073690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com