2017-07-05 5 views
0

Ich versuche, einen Standardwert für meine Datumsspalte hinzuzufügen. Der Standardwert sollte GETDATE() sein. Ich möchte dies tun, damit ich das Datum der erstellten Zeile sehen kann. Wenn ich versuche es zu speichern, bekomme ich die Warnung: Incorrect default value for date.Vorschlagswert für Datumsspalte hinzufügen

Weiß jemand, warum ich die Warnung bekomme und wie ich es beheben kann?

+0

Es scheint, dass die Möglichkeiten für Standardwerte in MySQL im Vergleich zu dem, was in einer Norma erlaubt ist, eher eingeschränkt sind l einfügen/update, aber funktioniert das? (Es ist für einen anderen Typ, frage mich, ob es auch für Datum funktioniert) https://stackoverflow.com/a/10603198 –

+0

Verwenden Sie CURRENT_TIMESTAMP anstelle von getdate() – Juan

+0

GETDATE() ist nicht eine MySQL-Funktion NOW() ist – Tik

Antwort

1

Run diese Abfrage

ALTER TABLE `YourDb.yourtable` 
    CHANGE COLUMN `date` `date` DATETIME DEFAULT CURRENT_TIMESTAMP; 

Die Säule Veränderung ist oldval newval und die Art stellen Sie sicher, wenn Ihr Spaltenname ist nicht Datum es

zusätzlich in geeigneter Weise zu ändern, wenn Sie möchten, dass Zeitstempel zu aktualisieren, wenn die Zeile ist geändert Verwendung

CHANGE COLUMN `date` `date` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
+0

Diese Methode funktioniert. Aber es fügt auch die Zeit hinzu. Ich möchte nur Datum (Jahr-Monat-Tag) hinzufügen. Wie kann ich es ändern in (Jahr-Monat-Tag) – John

+1

mysql nur Standard-Zeitstempel für für die Zeitstempel und Datetime Datumstypen erlaubt. Sie können den Zeitabschnitt in Select-Abfrage mithilfe der Funktion date() z. SELECT DATE (Datum) VON 'YourDb.yourtable' – Tik

Verwandte Themen