我有一张包含两个字段的表:
id(serial), data(jsonb)
我有一些数据记录,其中包含一个DateTime字段,以UNIX时间戳的形式存储:
{"Device":132,"Datetime": 1434166552,...}
我正在尝试在范围之间进行查询:
SELECT *
FROM trips
WHERE data->>'Datetime' BETWEEN
EXTRACT(EPOCH FROM date '2014-04-01') AND
EXTRACT(EPOCH FROM date '2014-04-15' + interval '1 day')
AND id = 123
消息
ERROR: operator does not exist: text >= double precision
LINE 3: WHERE data->>'Datetime' BETWEEN
我做错了什么事情,请有经验的人帮助我解决一下?谢谢。
data::json->>'Datetime'
? - Onel Sarmientodata
已经是一个json
(或者jsonb
,但这里没有任何变化),那么::json
会做什么? - Marth->>
是整型? - Onel Sarmientojson
/jsonb
运算符->>
返回一个text
(请参见答案中的链接)。 - Marth