Konvertieren BigInt timestamp in ein reales Datum mit der Zeile-aggregation und-Operationen in mySQL

Ich habe eine Abfrage, welche die Letzte update-Datum (timestamp sondern als bigint(20) - Spalte) wie folgt aus:

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

und es gibt das Letzte update-Datum (unix-timestamp als bigint(20)) für jede Art von log (a oder b):

id          last update
-------------------------
1001        1376750476349
1002        1376753690861
1003        1378122801986
1004        1377764414858
1005        1377847226096
...

Möchte ich nun formatieren Sie die Rückkehr in das Datumsformat und das ich naiv aber ich kann nur format außen timestamp mit FROM_UNIXTIME wie diese:

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

aber es gibt

id          last update
-------------------------
1001        null
1002        null
1003        null
1004        null
1005        null
...

Ich versuchte, um die Umwandlung in die inneren Anfragen, aber es ist das gleiche.

Ich habe auch versucht, Antworten zu finden auf SO, mySQL-Dokumentation und Google aber nicht finden, warum die Konvertierung nicht funktioniert, wenn ich eine group by.

InformationsquelleAutor | 2013-10-25
Schreibe einen Kommentar