Ich muss eine MySQL-Tabelle mit dem Standardwert in der Spalte CURRENT_DATE () erstellen.
Ich versuche
DROP TABLE IF EXISTS `visitors`;
CREATE TABLE `visitors` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(32) NOT NULL,
`browser` VARCHAR(500) NOT NULL,
`version` VARCHAR(500) NOT NULL,
`platform` ENUM('w','l','m') NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_DATE(),
PRIMARY KEY (`id`),
UNIQUE KEY `person` (`ip`,`date`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
aber es schreibt einen Fehler
Query: CREATE TABLE `visitors` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ip` VARCHAR(32) NOT NULL, `browser` VARCHAR(500) NO...
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_DATE() NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `person` (`ip`,`date`)
) ENGINE=INNODB AUTO_INCREMENT=1' at line 7
Execution Time : 0 sec
Transfer Time : 0 sec
Total Time : 0.063 sec
worin besteht das Problem?
Ich brauche nur datum nicht mit vollzeit info einzurichten ...
kannst du mir helfen?
Verwenden Sie die Funktion CURRENT_TIMESTAMP anstelle der Funktion CURRENT_DATE ()
Versuche dies:
DROP TABLE IF EXISTS `visitors`;
CREATE TABLE `visitors` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(32) NOT NULL,
`browser` VARCHAR(500) NOT NULL,
`version` VARCHAR(500) NOT NULL,
`platform` ENUM('w','l','m') NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `person` (`ip`,`date`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
sie müssen lediglich CURRENT_DATE () durch NOW () in Ihrer Abfrage ersetzen. Ich habe es versucht und es sieht ok aus.
Das mag etwas spät sein, aber ich denke, es könnte jemand anderem helfen.
Mein Ansatz war es, getdate () wie folgt zu verwenden:
[TimeStamp] [datetime] NICHT NULL CONSTRAINT [DF_myTable_TimeStamp] DEFAULT (getdate ()).
Wobei [TimeStamp] die betreffende Spalte ist.
Das Ergebnis ist zum Beispiel: 2017-11-02 11: 58: 34.203
Um dies zu trimmen, verwende ich Folgendes
deklarieren Sie @mydate datetime
set @mydate = '2017-11-02 11: 58: 34.203'
SELECT try_convert (nvarchar (20), @mydate, 120)
Dieses Endergebnis ist: 2017-11-02 11:58:34
Sie können dies tatsächlich in MSSQL Management Studio einstellen