mysql - 解析作为 json 对象的列
问题描述
我想查询这个 JSON 对象的列。
| x | y | z |
----------------------------------------------------------------
| 1 | first | {"first_name":["Pat","Amy T."],"last_name":["Liman","Pedano"],"updated_at":["1989-11-30T19:00:00.000-05:00","2018-10-11T12:45:44.674-04:00"]} |
| 2 | second | {"first_name":["Elli","Ala"],"last_name":["Sheppard","Mcgrial"],"updated_at":["2019-03-16T11:15:25.714-04:00","2019-05-21T11:29:00.684-04:00"]} |
其中 z 是一个 json 对象。
我试过
SELECT x, y, t1.first_name, t1.last_name, t1.updated_at
FROM versions_table v
LATERAL VIEW json_tuple(v.z, 'first_name', 'last_name', 'updated_at') t1
as `first_name`, `last_name`, `updated_at`
where first_name is not null;
但我得到一个 json 数组。更改日期格式的最佳方法是什么
输出是这样的2019-01-03
。
谢谢!
解决方案
您的日期字符串采用“组合时间戳”格式。据我了解,您只是想将该字符串转换为日期类型。
PostgreSQL
以下示例有效,并将您的字符串转换为您想要的日期:
SELECT '2018-10-11T12:45:44.674-04:00'::date
您可以在本教程中了解有关铸造的更多信息。::
是强制转换运算符。
另一种选择是使用to_date 函数或类似函数:
SELECT to_date('2018-10-11T12:45:44.674-04:00', 'YYYY-MM-DD');
MySQL
在 MySQL 中,您可以使用DATE 函数
SELECT DATE('2018-10-11T12:45:44.674-04:00')
推荐阅读
- intellij-idea - 如何使用 -ea JVM 选项使 IntelliJ IDEA 运行测试
- ios - 提交到 iTunes 时文件未保存
- regex - 只接受小数和 - 的正则表达式
- java - 如何通过 Selenium WebDriver 使用 ChromeOptions 禁用通知
- javascript - 如何根据下拉选择和按钮单击从 MySql 数据库中检索数据?
- excel - 宏不粘贴值
- qt - 如何将代理添加到 Qt Creator
- laravel - Laravel 和 react 原生聊天
- java - S3 java v1 => v2:putObject 仅在调试时有效 - SdkClientException:无法执行 HTTP 请求:读取超时
- terraform-provider-azure - Azure 发布管道,terraform 任务 - 无法通过 Azure 进行身份验证,报告错误 700016