Problembeschreibung
Häufig wird in MySQL-Tabellen in Datensätzen auch Datum und Uhrzeit gespeichert, z.B. vom Erstellungs- oder Änderungszeitpunkt. Das erfolgt häufig als Integerzahl im Unix-Timestamp-Format und ist dann bei Tabellenanzeigen für Menschen schwer lesebar. Deshalb möchte man mitunter diesen UNIX-Timestamp gerne in eine normale Schreibweise von Datum und Uhrzeit angezeigt haben.
Hier die Lösung
... am Beispiel einer User-Tabelle, wo wie das Anmeldedatum umgewandelt haben wollen.
SELECT *, FROM_UNIXTIME(time) as realtime FROM `session` ORDER BY `time` DESC LIMIT 30
Mit nachfolgender Lösung werden alle DS in einer MySQL-Tabelle gefunden, bei der das modified_on-Datum darauf verweist, dass der DS zuletzt vor 30 Tagen bearbeitet wurde:
select *, modified_on, timestampdiff(DAY, modified_on, now()) as diffdays from j2ms_virtuemart_categories c left join j2ms_users u on c.modified_by = u.id WHERE timestampdiff(DAY, modified_on, now()) < 30 ORDER BY timestampdiff(DAY, modified_on, now()) ASC limit 0, 100
Man kann die Datum/Zeit-Ausgabe auch gezielt formatieren in dem ein Formatstring übergeben wird:
FROM_UNIXTIME(`timestamp_column`, '%Y-%m-%d %H:%i:%s')