Aktuelles Datum in SQL Datenbank einfügen?
Hallo,
ich habe diverse Codes mit denen ich ein Formular in eine Datenbank eintrage und per Cronjob täglich bzw. monatlich als Tabelle per eMail versende.
Nun möchte ich gerne, dass in einer Spalte jeweils das aktuelle Datum+Zeit beim Absenden des Formulars, bzw. beim automatischen Senden der Cronjob-Mail eingetragen wird
Ich dachte ich mache das ganz einfach per INSERT INTO tabelle (EINTRAGEDATUM) VALUES (now()). In der Datenbank habe ich die Spalte als "DATETIME" formatiert. Leider funktioniert es nicht so wie es soll.
Hat jemand einen Tipp?
5 Antworten
Mit INSERT fügt man einen neuen Satz in eine vorhandene Tabelle ein. Ich habe da meine Zweifel, ob Du das überhaupt willst. Es erscheint mir sinnlos, einen Satz einzufügen, in dem nichts anderes als das Tagesdatum steht.
Ich vermute mal, dass es Dir darum geht, ein im Datenzatz (Zeile) einer Tabelle ein Feld mit dem Tagesdatum zu belegen. Das ginge z.B. mit
UPDATE tabelle, SET tagesdatum = CURRENT DATE WHERE ...
Das Schlüsselwort für Tagesdatum lautet CURRENT DATE, das Du überall dort verwenden kannst, wo normalerweise ein Kalenderdatum angegeben wird. Also statt '21.10.2016' schreibst CURRENT DATE (aber ohne Hochkommata), wenn das das heutige Datum ist. Die Datenbank holt sich das vom Systemdatum. Genauso geht das mit CURRENT TIME für die Uhrzeit.
Was passiert denn genau bzw. welchen Fehler bekommst du zurück?
Now() enthält das gesamte Datum. Versuche einmal folgendes:
INSERT INTO tabelle (EINTRAGEDATUM) VALUES (DATE_FORMAT(Now(),'%Y-%m-%d %H:%i:%S'))
Oder du nimmst GETDATE(). Das sollte dir das auch richtig zurückliefern.
Tipp: Erkläre uns doch bitte erst mal, was denn genau nicht funktioniert? Gibt es einen SQL-Fehler oder steht ein falsches Datum in dem Feld oder …?
Nutzt du php? Dann kannst du time() in php verwenden und in sql als datentyp int
Benutze mal den Datentype timestamp.
Grüße
Habe ich auch versucht - geht leider auch nicht. Es wird nichts übertragen