Rainer: timestamp in MySql Tabelle schreiben

Hallo und guten Morgen,

da das Archiv mir nicht so richtig geholfen hat (vielleicht begreife ich es auch bloss nicht) hier meine Frage:

ich möchte bei einem INSERT in die Tabelle einen timestamp setzen.

Name -> char(100)
C -> timestamp

Ich habe immer nur 00000000000000 im Feld C stehen. Muss ich den Timestamp erst errechnen, und wenn ja, wie? Ich dachte das macht MySql selber.

Gruss
Rainer

  1. Halihallo Rainer

    Name -> char(100)
    C -> timestamp

    Ich habe immer nur 00000000000000 im Feld C stehen. Muss ich den Timestamp erst errechnen, und wenn ja, wie? Ich dachte das macht MySql selber.

    Die erste Spalte des Typs Timestamp, sollte IMHO immer mit dem aktuellen Datum gefüllt
    werden; alle anderen musst du selber setzen.
    Berechnen muss man in dem Sinne auch nichts, der Timestamp ist in MySQL kein Integer, was
    er eigentlich ist (so wird er in mysql nur gespeichert), sondern ein ganz normaler
    "Datetime"; ich meine, du kannst Timestamp-Typen gleich verwenden/setzen, wie du dies
    mit DATETIME machen würdest.
    Hast du den Default auf NOW() gesetzt?

    Viele Grüsse

    Philipp

    1. Hi, ich hatte gestern das gleiche Problem.
      Dann habe ich den Timestamp auf NOT NULL gesetzt und dann hat er immer Zeiten angezeigt.

      Knoppers

      1. Halihallo Knoppers

        mampf, du weisst doch, wie Pizza in "Space Balls 6" geendet hat, oder? ;-)

        Hi, ich hatte gestern das gleiche Problem.
        Dann habe ich den Timestamp auf NOT NULL gesetzt und dann hat er immer Zeiten angezeigt.

        Nur aus Interesse: Beschränkt sich diese Aussage auf die erste Spalte des Typs
        Timestamp, oder gilt dies für alle? - Vielleicht hast du dies ja ausprobiert.
        Ich bin mir zwar ziemlich sicher (steht zumindest so in der Doku), dass nur die erste
        Spalte mit dem aktuellen Wert gefüllt wird, aber vielleicht könnte es auch anders sein,
        obgleich ich das nicht glaube.

        Viele Grüsse

        Philipp

  2. Hallo Rainer,

    Ich habe immer nur 00000000000000 im Feld C stehen. Muss ich den Timestamp erst errechnen, und wenn ja, wie? Ich dachte das macht MySql selber.

    normalerweise wird das erste TIMESTAMP-Feld einer Tabelle beim Einfügen von NULL auf den aktuellen Zeitstempel aktualisiert. Sobald Du aber etwas anderes einfügst, wird versucht, einen brauchbaren Zeitstempel daraus zu machen und diesen abzulegen. Interessant wäre in dieser Hinsicht dein SQL-Statement, welches den Datensatz einfügen soll. Poste das doch einfach mal.

    viele Grüße
      Achim Schrepfer

    --
    »Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wieviel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen.« - Albert Einstein