Postgres jsonb和查询

时间:2018-04-03 13:19:41

标签: sql postgresql jsonb

我有一个postgres数据库。内部"匹配"表我存储了一个像这样的JSONB,在"当"柱:

{{"end": "2017-01-04T17:22:13.311693Z", "start": "2017-01-04T16:22:13.311693Z"}, {"end": "2017-01-04T17:22:13.311693Z", "start": "2017-01-04T16:22:13.311693Z"}}

它就像一个存储开始时间和结束时间的对象列表。 现在我想查询所有未过去的比赛。我怎样才能做到这一点?是否可以比较单个"开始"当前数据的值?

1 个答案:

答案 0 :(得分:1)

查看this SQL Fiddle

您可以使用error: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc does not exist usage: /usr/local/bin/docker-php-ext-enable [options] module-name [module-name ...] ie: /usr/local/bin/docker-php-ext-enable gd mysqli /usr/local/bin/docker-php-ext-enable pdo pdo_mysql /usr/local/bin/docker-php-ext-enable --ini-name 0-apc.ini apcu apc Possible values for module-name: opcache.so sodium.so Some of the above modules are already compiled into PHP; please check the output of "php -i" to see which modules are already loaded. 运算符查询jsonb。对于日期/时间,您需要转换结果才能进行比较。此查询仅返回具有未来开始的值:

->>

请注意,您在上面提供的JSON格式不正确。我把它分成小提琴中的不同行:

SELECT when_col->>'start' FROM match
WHERE to_date(when_col->>'start','YYYY-MM-DD"T"HH24:MI:SS') >= NOW();