如何根据 jsonb 列中的 unix 整数设置 postgres 时间戳列?
Posted
技术标签:
【中文标题】如何根据 jsonb 列中的 unix 整数设置 postgres 时间戳列?【英文标题】:How to set a postgres timestamp column based on a unix integer in a jsonb column? 【发布时间】:2022-01-15 20:24:12 【问题描述】:我正在尝试更新我的数据库以从 jsonb 对象中提取一个 unix 纪元整数,并使用该值设置一个时间戳列。我有一些碎片,但我无法将它们全部组合在一起。这是我所在的位置(subscription_end 是时间戳列,json_data 是 jsonb 列):
UPDATE "customers" SET "subscription_end" = to_timestamp(
json_data -> 'some_property' ->> 'subscription_end'
);
我不确定我的所有内容是否都按正确的顺序排列。我找不到任何像上面那样使用 to_timestamp 函数和 json 向下钻取的好例子。
【问题讨论】:
可能需要添加演员表:to_timestamp((json_data -> 'some_property' ->> 'subscription_end')::integer);
。唯一知道的方法是尝试,最好在UPDATE
上使用WHERE
来限制您正在更新的内容。
谢谢,想通了,看下面我的回答
【参考方案1】:
就是这样:
UPDATE "customers" SET "subscription_end" =
to_timestamp((json_data -> 'some_property' ->> 'subscription_end')::integer);
【讨论】:
以上是关于如何根据 jsonb 列中的 unix 整数设置 postgres 时间戳列?的主要内容,如果未能解决你的问题,请参考以下文章
在 PostgreSQL 中的 jsonb 列中搜索 json 数组,其中数据为 json 数组