如何将jsonb中的时间戳更新为函数now()的值?
我试着像这样做smt
UPDATE test
SET column = jsonb_set(column,'{time}',to_char(now(),'some date format'),true)
我收到了像
这样的错误 'jsonb_set(json,unknown,text,bool) is not available'
我认为错误的原因是now()的值不是单引号,因为这个查询正常工作
UPDATE test
SET column = jsonb_set(column,'{time}','date with the same date format ',true)
有没有解决方案?
答案 0 :(得分:1)
jsonb_set(json,unknown,text,bool) is not available
PostgreSQL无法找到具有此签名的函数。根据{{3}},签名为jsonb_set(jsonb, text[], jsonb, boolean)
。
to_char()
正在返回text
您需要jsonb
的位置,而演员应该可以做到这一点:
jsonb_set(column, '{time}', to_char(now(),'some date format')::jsonb, true)
(请注意,::jsonb
需要有效的JSON作为输入,例如围绕字符串"
。)