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 Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein timestamp ist in Millisekunden versuchen:
(d.h. dividieren Sie die Zeit durch 1000 um Sekunden)