#mysql #sql
#mysql #sql
Вопрос:
Я создаю структуру JSON, используя функции JSON_OBJECT и JSON_ARRAY в моем запросе select. Проблема, с которой я сталкиваюсь, связана с форматом, в котором столбцы datetime возвращаются в форматированном результате 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"
}
Я хотел бы, чтобы значения даты и времени возвращались в стандартном формате ГГГГ-ММ-ДД ЧЧ: ii:ss, без конечных нулей.
Возможно ли это?
Я просмотрел документацию JSON_OBJECT, но не смог найти никаких ключей к разгадке этой тайны. Я думаю, что используемый формат может быть определен где-то в настройках сервера / базы данных. Идеальным решением для моего случая было бы дополнительно задать желаемый формат в самих отдельных запросах.
Я использую: Сервер: MySQL Community Server (GPL) Версии: 5.7.24
Ответ №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;
Комментарии:
1. Используйте ‘%Y-%m-%d %T’ для начальных нулей