tstamp in DB mit SQL als 01.12.2007 ausgeben
Mike
- datenbank
0 Vinzenz Mai0 Mike
Hallo zusammen,
ich habe in meiner mysql DB eine Spalte mit timestamps.
Wenn ich wie folgt auslese:
SELECT tstamp from tbl
wird der tstamp ausgegeben. Soweit so gut...
Nun möchte ich aber, daß nicht der tstamp sondern ein Datum im Format: 01.12.2007 10:23:34 ausgegeben wird.
Ich hab folgendes probiert:
SELECT DATE_FORMAT('tstamp', '%d.%m.%Y %H:%i') AS tstamp FROM tbl
tstamp ist aber immer NULL...obwohl der tstamp ja definitiv und richtig gefüllt ist.
Hat jemand nen Tip?
Danke
=)
Hallo Mike,
ich habe in meiner mysql DB eine Spalte mit timestamps.
Welche MySQL-Version. In Version 4.1 hat sich das Format geändert.
Nun möchte ich aber, daß nicht der tstamp sondern ein Datum im Format: 01.12.2007 10:23:34 ausgegeben wird.
Ich hab folgendes probiert:
SELECT DATE_FORMAT('tstamp', '%d.%m.%Y %H:%i') AS tstamp FROM tbl
Spaltennamen in einfache Anführungszeichen zu setzen, ist eine schlechte Idee. DATE_FORMAT versucht also die Zeichenkette
tstamp
in das von Dir verlangte Format umzuwandeln. Ich halte es nicht für eine gute Idee, die umformatierte Spalte gleich der tatsächlich vorhandenen umzubenennen. Das kann zu üblen Verwechslungen führen.
tstamp ist aber immer NULL...obwohl der tstamp ja definitiv und richtig gefüllt ist.
Die Spalte tstamp möglicherweise, aber die verwendest Du ja nicht. Du verwendest die Zeichenkette "tstamp" - das ist ein großer Unterschied.
Hat jemand nen Tip?
Anführungszeichen weglassen bzw. durch Backticks (die hier überflüssig sind) ersetzen.
Freundliche Grüße
Vinzenz
HAllo Vinzenz,
btw mysql version 4.1.10a
( ja ich weiß, ich sollte ein upgrade in Betracht ziehen - kam leider nur noch nicht dazu...never change a running system!)
hab jetzt folgendes probiert:
SELECT tstamp, DATE_FORMAT(tstamp
, '%d.%m.%Y %H:%i') AS xyz
FROM tbl
Spalte tstamp zeigt den originalen tstamp an (zb 1173979303)
Spalte xyz ist trotzdem immer noch NULL
Ich weiss einfach nicht weiter...
Hallo Mike,
btw mysql version 4.1.10a
SELECT tstamp, DATE_FORMAT(tstamp
, '%d.%m.%Y %H:%i') AS xyz
FROM tblSpalte tstamp zeigt den originalen tstamp an (zb 1173979303)
Spalte xyz ist trotzdem immer noch NULL
das ist übel. Das ist kein MySQL-Timestamp. Das sieht nach einem UNIX-Timestamp aus - und das ist ein himmelweiter Unterschied. Ich gebe zu, für diese UNIX-Timestamps in Verbindung mit Datenbanken nicht viel übrig zu haben. Sie sind einfach in jeglicher Hinsicht zu beschränkt :-)
Wenn Du nun solch grausame Daten in Deiner Spalte hast und sie bereits mit SQL verarbeiten möchtest, dann solltest Du die entsprechende Funktion FROM_UNIXTIME verwenden. Die Doku sagt Dir, welche Syntax für Dich besonders hilfreich ist.
Freundliche Grüße
Vinzenz