我通过在选择查询中使用JSON_OBJECT和JSON_ARRAY函数来创建JSON结构。我遇到的问题是格式化的JSON结果中返回datetime列的格式。
例如,我有一个表格标题
id (INT), title (VARCHAR), created_at (DATETIME)
连续这样
1,"Title 1","2019-02-03 12:13:14"
如果我现在执行以下查询
SELECT JSON_OBJECT('title',title,'created_at',created_at) AS title_json FROM titles WHERE id = 1;
我将得到的结果 title_json 列为:
{
"title": "Title 1",
"created_at": "2019-02-03 12:13:14.000000"
}
我希望以标准 YYYY-MM-DD HH:ii:ss 格式返回日期时间值,且不带结尾的零。
这可能吗?
我已经浏览了JSON_OBJECT文档,但找不到有关此谜的任何线索。我认为使用的格式可能在服务器/数据库设置中的某处定义。对于我而言,理想的解决方案是在各个查询中自行设置所需的格式。
我正在使用: 服务器:MySQL Community Server(GPL) 版本:5.7.24
答案 0 :(得分:1)
您可以使用DATE_FORMAT
SELECT JSON_OBJECT('title',title,'created_at',DATE_FORMAT(created_at, "%Y-%c-%d %H:%i:%s")) AS title_json FROM titles WHERE id = 1;