想象一个PostgreSQL 9.3,其中一个表包含一个包含对象的SQL列:
{"start":"2016-02-04 00:45:56.000"}
如何查询它以获取具有开始日期>的对象? :“2016-01-01 00:00:00.000”?
此问题特别适用于版本9.3
答案 0 :(得分:8)
这样的事情应该这样做:
SELECT *
FROM mytable
WHERE (c->>'start')::timestamp with time zone > '2016-01-01'::timestamp with time zone;
我假设该表名为mytable
,JSON列名为c
。这也假设时间是UTC。如果您的时间是当地时间,请改用timestamp without time zone
。