错误代码 1292 不正确的日期值 mysql

17 浏览
0 Comments

错误代码 1292 不正确的日期值 mysql

我有一张表\n

CREATE TABLE IF NOT EXISTS `PROGETTO`.`ALBERGO` (
`ID` INT(11) NOT NULL COMMENT '酒店的唯一标识',
`nome` VARCHAR(45) NULL COMMENT '酒店名称',
`viale` VARCHAR(45) NULL COMMENT '所在大街',
`num_civico` VARCHAR(5) NULL COMMENT '门牌号',
`data_apertura` DATE NULL COMMENT '开业日期(季节开始)',
`data_chiusura` DATE NULL COMMENT '关闭日期(季节结束)',
`orario_apertura` TIME NULL COMMENT '开门时间',
`orario_chiusura` TIME NULL COMMENT '关门时间',
`posti_liberi` INT(11) NULL COMMENT '空房数量',
`costo_intero` FLOAT NULL COMMENT '全价价格',
`costo_ridotto` FLOAT NULL COMMENT '折扣价格',
`stelle` INT(11) NULL COMMENT '星级分类',
`telefono` VARCHAR(15) NULL COMMENT '电话号码',
`mail` VARCHAR(100) NULL COMMENT '电子邮件',
`web` VARCHAR(100) NULL COMMENT '网站',
'Nome-paese` VARCHAR(45) NOT NULL COMMENT '酒店所在国家的唯一标识',
`Comune` CHAR(2) NOT NULL COMMENT '酒店所在城市的唯一标识',
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

\n当我尝试运行这个查询时:\n

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', 'info@hcentrale.it', 'http://www.hcentrale.it/', 'Trento', 'TN')

\n*错误代码:1292. 对于列\'data_apertura\',日期值不正确:\'01-05-2012\'*\n我应该做什么更改?(我尝试将日期格式从gg/mm/yyyy更改为gg-mm-yyyy,但没有任何变化)

0
0 Comments

问题描述:MySQL错误代码1292,日期值不正确。

问题原因:该问题通常发生在将日期值插入MySQL数据库时,日期格式不正确。

解决方法:使用ISO格式的日期字符串来插入日期值。在C#应用程序中,可以使用以下代码将日期转换为ISO格式:

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

0
0 Comments

错误代码 1292 是 MySQL 中的一个常见错误,表示日期值不正确。在上述代码中,出现了这个错误是因为在插入数据时,日期 '2012-09-31' 的值不正确。根据日期格式 yyyy-MM-dd,每个月的日期范围应该是 1-31,而9月只有30天,因此日期 '2012-09-31' 是无效的。

要解决这个问题,需要将日期 '2012-09-31' 修改为有效的日期,比如 '2012-09-30'。修改后的代码如下:

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-30', '06:30', '24:00', 80, 50, 25, 3, '43968083', 'info.it', 'http://www.hcentrale.it/', 'Trento', 'TN')

通过将日期修改为有效的值,就可以避免错误代码 1292 的出现。

0
0 Comments

在MySQL 5.7中,不允许使用0000-00-00 00:00:00这样的日期值。

如果你想要允许这样的日期值,你需要更新你的my.cnf文件,步骤如下:

1. 打开终端并输入sudo nano /etc/mysql/my.cnf

2. 找到[mysqld]这一行,在其后面添加以下内容:sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

3. 重启MySQL服务,输入sudo service mysql restart

4. 完成!

对于Windows系统,需要修改的是my.ini文件。

感谢你帮了我很多忙,特别是当我在使用新配置的旧代码时。

我不得不将这一行添加到/etc/mysql/mysql.conf.d/mysqld.cnf文件中,所以输入sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf进行编辑。

0