web-dev-qa-db-ja.com

エラーコード1292不正な日付値mysql

テーブルがあります

`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

このクエリを実行しようとすると:

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')

* エラーコード:1292。行1の列 'data_apertura'の不正な日付値:'01 -05-2012 '

何を変える必要がありますか? (フォーマットの日付をgg/mm/yyyyからgg-mm-yyyyに変更しようとしましたが、何も変更されませんでした)

16
FrancescoN

次の形式で日付を挿入しますyyyy-MM-dd例、

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')
12
John Woo

Mysql 5.7では、0000-00-00 00:00:00のような日付値は許可されません。

許可したい場合は、my.cnfを次のように更新する必要があります。

Sudo nano /etc/mysql/my.cnf

見つける

[mysqld]

後に追加:

sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Mysqlサービスを再起動します。

Sudo service mysql restart

できた!

44
Sinan Eldem

アップデート。 「2019-08-00」という形式の日付でも同じエラーが発生します。行の追加:

[mysqld]

sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 

mysql.cnfこれも修正します。不正な形式の日付を挿入すると、範囲外の値に対して警告が生成されるようになりましたが、データは挿入されます。

0
Bernard Peek

私は偶然にも [〜#〜] wamp [〜#〜] を使用して、localhostのWindows 10で作業していました。結局のところ、WampにはMySQL構成を変更するための本当にアクセス可能な構成インターフェースがあります。 Wampパネルに行き、次にMySQLに行き、設定に行き、モードをsql-modeに変更するだけです:なし。(厳密モードを本質的に無効にする)次の図はこれを示しています。

enter image description here

0
bachstein

Workbenchで同じ問題が発生し、C#アプリケーションからクエリを挿入していました。私の場合、ISO形式を使用して問題を解決します

string value = date.ToString("yyyy-MM-dd HH:mm:ss");
0
faheem khan