Ich habe einen tisch
`CREATE TABLE IF NOT EXISTS `PROGETTO`.`ALBERGO` (
`ID` INT(11) NOT NULL COMMENT 'identificativo Dell\' albergo' ,
`nome` VARCHAR(45) NULL COMMENT 'Il nome Dell\'albergo' ,
`viale` VARCHAR(45) NULL COMMENT 'Il viale in cui si trova ' ,
`num_civico` VARCHAR(5) NULL COMMENT 'Il numero civico che gli appartiene' ,
`data_apertura` DATE NULL COMMENT 'Data di inizio apertura (inizio stagione)' ,
`data_chiusura` DATE NULL COMMENT 'Data di chiusura (fine stagione)' ,
`orario_apertura` TIME NULL COMMENT 'Orario di apertura' ,
`orario_chiusura` TIME NULL COMMENT 'Orario di chiusura' ,
`posti_liberi` INT(11) NULL COMMENT 'Disponiblità posti liberi ' ,
`costo_intero` FLOAT NULL COMMENT 'Costo del prezzo intero' ,
`costo_ridotto` FLOAT NULL COMMENT 'Costo del prezzo ridotto' ,
`stelle` INT(11) NULL COMMENT 'Classificazione in base al criterio delle stelle' ,
`telefono` VARCHAR(15) NULL COMMENT 'Recapito telefonico' ,
`mail` VARCHAR(100) NULL COMMENT 'Recapito e-mail' ,
`web` VARCHAR(100) NULL COMMENT 'Sito Web relativo all\'ente' ,
'Nome-paese` VARCHAR(45) NOT NULL COMMENT 'Identificativo del paese in cui si trova l\'albergo' ,
`Comune` CHAR(2) NOT NULL COMMENT 'Identificativo del comune in cui si trova l\'albergo' ,
PRIMARY KEY (`ID`) ,
INDEX `Nome-paese` (`Nome-paese` ASC) ,
INDEX `Comune` (`Comune` ASC) ,
CONSTRAINT `Nome-paese`
FOREIGN KEY (`Nome-paese` )
REFERENCES `PROGETTO`.`PAESE` (`Nome-paese` )
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `Comune`
FOREIGN KEY (`Comune` )
REFERENCES `PROGETTO`.`PAESE` (`Comune` )
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB
Wenn ich versuche, diese Abfrage auszuführen:
INSERT INTO `PROGETTO`.`ALBERGO`(`ID`, `nome`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `posti_liberi`, `costo_intero`, `costo_ridotto`, `stelle`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`)
VALUES(0, 'Hotel Centrale', 'Via Passo Rolle', '74', '01-05-2012', '31-09-2012', '06:30', '24:00', 80, 50, 25, 3, '43968083', '[email protected]', 'http://www.hcentrale.it/', 'Trento', 'TN')
* Fehlercode: 1292. Falscher Datumswert: '01 -05-2012 'für Spalte' data_apertura 'in Zeile 1 *
Was muss ich ändern? (Ich habe versucht, das Datum des Formats von gg/mm/jjjj in gg-mm-jjjj zu ändern, aber es hat sich nichts geändert.)
Datum im folgenden Format einfügen yyyy-MM-dd
Beispiel,
INSERT INTO `PROGETTO`.`ALBERGO`(`ID`, `nome`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `posti_liberi`, `costo_intero`, `costo_ridotto`, `stelle`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`)
VALUES(0, 'Hotel Centrale', 'Via Passo Rolle', '74', '2012-05-01', '2012-09-31', '06:30', '24:00', 80, 50, 25, 3, '43968083', '[email protected]', 'http://www.hcentrale.it/', 'Trento', 'TN')
Mit mysql 5.7 ist ein Datumswert wie 0000-00-00 00:00:00 nicht zulässig.
Wenn Sie dies zulassen möchten, müssen Sie Ihre my.cnf wie folgt aktualisieren:
Sudo nano /etc/mysql/my.cnf
finden
[mysqld]
Füge danach hinzu:
sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Starten Sie den MySQL-Dienst neu:
Sudo service mysql restart
Erledigt!
Ein Update. Daten der Form '2019-08-00' lösen denselben Fehler aus. Zeilen hinzufügen:
[mysqld]
sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
zu mysql.cnf
behebt das auch. Das Einfügen fehlerhafter Daten generiert jetzt Warnungen für Werte außerhalb des Bereichs, fügt jedoch die Daten ein.
Ich arbeitete gerade in localhost, in Windows 10, und benutzte WAMP . Wie sich herausstellt, hat Wamp eine wirklich zugängliche Konfigurationsoberfläche, um die MySQL-Konfiguration zu ändern. Sie müssen nur in das Wamp-Fenster, dann in MySQL, dann in die Einstellungen gehen und den Modus in den SQL-Modus ändern: none (keine Deaktivierung des strikten Modus) Das folgende Bild veranschaulicht dies.
Ich hatte das gleiche Problem in Workbench sowie die Abfrage zum Einfügen aus der C # -Anwendung. In meinem Fall lösen Sie das Problem mit dem ISO-Format
string value = date.ToString("yyyy-MM-dd HH:mm:ss");