【发布时间】:2021-02-09 08:52:03
【问题描述】:
我正在从project_stage 命名表中选择项目的开始和结束日期。
这里是表格元素
stage_start_date stage_end_date planned_start_date planned_end_date
2019-01-28 10:12:01 2020-12-08 09:05:28 2019-01-12 01:01:00 2020-12-01 00:00:00
这里的数据类型是DATETIME
这是代码
SELECT ps.stage_start_date AS actual_start_date,
ps.stage_end_date AS actual_end_date,
ps.stage_planned_start_date AS planned_start_date,
ps.stage_planned_end_date AS planned_end_date
FROM project_stage AS ps
JOIN map_project_user AS mpu ON mpu.user_id = 22 AND mpu.project_id = 1 AND mpu.tenant_id = ps.tenant_id AND ps.project_id = mpu.project_id;
JSON 响应结果
{
"actual_start_date": "2019-01-28T04:42:01.000Z",
"actual_end_date": "2020-12-08T03:35:28.000Z",
"planned_start_date": "2019-01-11T19:31:00.000Z",
"planned_end_date": "2020-11-30T18:30:00.000Z"
}
这里的日期时间正在改变它而不是表中的实际日期时间,为什么日期在结果上发生变化。这是预期的输出
预期结果
{
"actual_start_date": "2019-01-28 10:12:01",
"actual_end_date": "2020-12-08 09:05:28",
"planned_start_date": "2019-01-12 01:01:00",
"planned_end_date": "2020-12-01 00:00:00"
}
MYSQL DATATYPE 是DATETIME。数据库timezone在UTC中,系统timezone也显示UTC,我怎样才能把这个日期时间转换为用户系统的timezone对应
【问题讨论】:
-
什么是将查询结果转换为json?
-
似乎是时区问题。像 UTC vs IST (+5:30)
-
时区,您的 SQL 服务器必须位于不同的时区。您应该获取该服务器的时区并在您的代码中说明它,或者更改时区
-
MySQL 中的 DATATYPE 是什么?
DATETIME和TIMESTAMP工作方式不同。SHOW VARIABLES LIKE '%zone%';你电脑的时区是多少?对于服务器? -
实际上时区编码在json的最后一位
000Z中。因此,加载 json 的应用程序可以贪图任何所需的时区。