我有一个查询,它采用最后更新日期(时间戳,但作为 bigint(20) 列),如下所示:
SELECT a.id_workorder, MAX(b.update_date) AS udpate_date
FROM main_log a,
(
SELECT MAX(log_date) AS update_date, log_id
FROM log_a
GROUP BY log_id
UNION
SELECT MAX(log_date) AS update_date, log_id
FROM log_b
GROUP BY log_id
)b
WHERE a.id_log = b.log_id
GROUP BY b.log_id
它返回任何类型的日志(a 或 b)的最后更新日期(unix 时间戳作为 bigint(20)):
id last update
-------------------------
1001 1376750476349
1002 1376753690861
1003 1378122801986
1004 1377764414858
1005 1377847226096
...
现在我想以日期格式格式化返回,虽然我可以FROM_UNIXTIME
像这样格式化外部时间戳,但我很天真:
SELECT
a.id_workorder,
FROM_UNIXTIME(MAX(b.update_date)) AS udpate_date
FROM main_log a,
(
SELECT MAX(log_date) AS update_date, log_id
FROM log_a
GROUP BY log_id
UNION
SELECT MAX(log_date) AS update_date, log_id
FROM log_b
GROUP BY log_id
)b
WHERE a.id_log = b.log_id
GROUP BY b.log_id
但它给了
id last update
-------------------------
1001 null
1002 null
1003 null
1004 null
1005 null
...
我也尝试将转换放在内部查询中,但它是相同的。
我还尝试在 SO、mySQL 文档和 Google 上找到答案,但没有找到为什么在我制作group by
.