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')