MySQL JSON_OBJECT() 日期时间格式

标签 mysql sql

我在选择查询中使用 JSON_OBJECT 和 JSON_ARRAY 函数创建了一个 JSON 结构。我遇到的问题是在格式化的 JSON 结果中返回日期时间列的格式。

例如我有一张表titles

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 社区服务器 (GPL) 版本:5.7.24

最佳答案

您可以使用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;

关于MySQL JSON_OBJECT() 日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55165454/

相关文章:

php - 为什么我的php绑定(bind)参数代码可以在wamp上运行,但在lnmp平台上不起作用

sql - 需要在sybase中创建pivot脚本

sql - 在窗口函数内过滤(通过...分区)?

php - 如何对 mySQL 表中的数据进行分组/汇总?

PHP echo 只重复行一次

MySQL 显示来自另一个表的值

mysql - 在 MySQL 中使用 Group by 和 Order by

MySQL - 如何在 Update 语句中将字符串值解析为 DATETIME 格式?

mysql - 如何对过程的输入使用 limit

MySQL - 在提高查询性能方面需要帮助