我正在使用 postgresql jdbc 适配器将一堆数据迁移到 jsonb 字段(postgres 9.4)。
导入后,日期字段看起来正确,但显示时用双引号括起来。有没有办法判断它们是否实际上在内部存储为日期值?如果它们是字符串,我认为范围查找不会非常有效。
例如,properties
jsonb 字段中的条目如下所示:
"founded_on": "Sep 1, 2012 12:00:00 AM",
我现在可以搜索,说,
SELECT CAST(properties->>'founded_on' AS DATE
和
SELECT extract('year' from cast(properties->>'founded_on' as timestamp))
并且两者都工作正常,但不要告诉我 Postgres 是否每次都将 jsonb 字段中的字符串值作为日期重新解析。
我可以创建一个索引,将这些值转换为日期,并使用它进行搜索,但这似乎有些不雅。我真的很想知道存储的值是一个日期。整数和浮点数似乎是它们的实际原生值,而不是字符串,如下所示:
shares_sold": 5900000,
"latitude": 33.561467,
任何反馈都非常感谢。