PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Problem mit Timestamp


Andykat
14.10.2009, 13:27:35
Hallo,

eines vorweg: Ich bin absoluter Laie was SQL angeht. Ich habe aber dennoch ein Problem zu lösen und hoffe auf Hilfe ;-)

Ich habe eine Datenbank mit 3 Feldern. Ein Feld enthält einen Timestamp, den ich gerne als "normales" Datum anzeigen lassen möchte. Leider ergibt die FROM_UNIXTIME -Funktion die Ausgabe NULL

SELECT `Sensor Nr`,`Average`,`Timestamp`, FROM_UNIXTIME(UNIX_TIMESTAMP(`Timestamp`),'%Y %D %M %h:%i:%s %x') as Datum FROM `sensor values`

Ein Timestamp-Wert ist Beispielsweise 1254734001281

Kann mir jemand weiter helfen, wie ich die Spalte korrekt angezeigt bekomme?

Danke

Crisps
14.10.2009, 14:13:02
Die Unixzeit geht nur bis zur 2147483647en Sekunde, dein Timestamp von 1254734001281 Sekunden ist aber deutlich länger und deshalb ungültig....

Was genau steht in einer dieser Timestamp Spalten?

DokuLeseHemmung
14.10.2009, 14:15:52
FROM_UNIXTIME(UNIX_TIMESTAMP
Diese Schachtelung ist unsinnig.

Du suchst scheinbar DATE_FORMAT()
http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html

Andykat
14.10.2009, 14:37:38
Diese Schachtelung fand ich im www.

Ich habe auch andere Abfragen getestet, allerdings bisher ohne Erfolg.

Spalte "Timestamp" beinhalten auch diesen, z.B.1254734001281. Unter http://www.esqsoft.com/javascript_examples/date-to-epoch.htm kann man diesen Timestamp auch umrechnen und sich als lesbares Datum anzeigen lassen. Jetzt suche ich diese Umrechnung als MySQL.

Andykat

Crisps
14.10.2009, 15:02:44
Diese Schachtelung fand ich im www.

Ich habe auch andere Abfragen getestet, allerdings bisher ohne Erfolg.

Spalte "Timestamp" beinhalten auch diesen, z.B.1254734001281. Unter http://www.esqsoft.com/javascript_examples/date-to-epoch.htm kann man diesen Timestamp auch umrechnen und sich als lesbares Datum anzeigen lassen. Jetzt suche ich diese Umrechnung als MySQL.

Andykat

Nein, 1254734001281 ist eben keine gültige Unixzeit. Das verlinkte Script ignoriert lediglich die letzten drei Stellen und zeigt das Datum für die ersten zehn Stellen an.

Andykat
14.10.2009, 15:08:52
Danke für den Hinweis. Heißt das, es gibt keine Möglichkeit die Zeit korrekt anzeigen zu lassen?

Crisps
14.10.2009, 15:12:56
Wie kommen den diese Zahlen überhaupt in die Datenbank?

Irgendetwas läuft da schon beim einfügen der Daten falsch, also müsste man dort als erstes ansetzen.

DokuLeseHemmung
14.10.2009, 15:12:59
Danke für den Hinweis. Heißt das, es gibt keine Möglichkeit die Zeit korrekt anzeigen zu lassen?

Natürlich!!
Wenn es eine Zeitangabe ist, dann kann man sie auch zeigen.

Aber dazu muss erst noch was geklärt werden:
1. Spaltendefinition
2. Wo kommen die Daten her
3. wie werden sie vor dem Speichern verarbeitet.

Andykat
14.10.2009, 15:24:49
Gute Frage. Leider habe ich nur die Datenbank und keine weiteren Info's. Ich habe aber eine akzeptable Lösung gefunden. Der Hinweis mit den 3 letzten Stellen war sehr hilfreich, somit kann ich in Excel bzw. Access die Daten lesen. Das löst zwar nicht wie ich die Daten in SQL lesbar machen kann, hilft mir aber trotzdem für den Moment.

Ich werde die angefragten Info's besorgen und wieder posten.

Andykat

knight1
14.10.2009, 16:17:10
...Das löst zwar nicht wie ich die Daten in SQL lesbar machen kann, hilft mir aber trotzdem für den Moment. ...

1. Korrkete Timestamps nutzen,
2. http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html durchlesen


Kai aka Knight1