我是 PostgreSQL 新手,有以下问题:
我有一个只有一个 id 列和一个数据列的表,它使用 jsonb 类型。在 jsonb-object 内部,我有一个日期时间字段。我在各种帖子中读到,我应该使用 ISO-8601 日期格式存储在数据库中。
我想按日期过滤我的表格,如下所示:
SELECT * FROM table WHERE data->'date' > '2016-01-01T00:00'
这真的是用于此目的的最佳日期格式吗?
提前致谢:)
最佳答案
恕我直言,您的查询应该产生
ERROR: operator does not exist: jsonb > timestamp with time zone
如果我猜对了。如果您将 ->
更改为 ->>
它应该获得一个文本值而不是 jsonb 字段(这也不能与时间戳相比较)。
应该是这样的
SELECT * FROM table WHERE (data->>'date')::timestamptz > '2016-01-01T00:00'
工作
关于postgresql - 当我想按日期过滤时,ISO8601 是 PostgreSQL jsonb 的最佳日期格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40626955/