MySQL日期时间插入问题。奇怪的错误?
问题描述:
我在插入记录到MySQL 5.6.15版本时遇到问题。问题是日期时间。MySQL日期时间插入问题。奇怪的错误?
INSERT INTO fish_db.fish_tank_temperature VALUES(NULL,'2015-10-04 14:00:27',30);
INSERT INTO fish_db.fish_tank_temperature VALUES(NULL,'2015-10-04 02:00:27',20.5);
**Error Code: 1292. Incorrect datetime value: '2015-10-04 02:00:27' for column 'time_value' at row 1**
select @@sql_mode
**'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'**
架构创建脚本位于任何您可能尝试的测试的下方。
这是一个非常简单的模式和3列的表。 自动递增的主键,TIME_VALUE和温度读数
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
DROP SCHEMA IF EXISTS `fish_db` ;
CREATE SCHEMA IF NOT EXISTS `fish_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `fish_db` ;
-- -----------------------------------------------------
-- Table `fish_db`.`fish_tank_temperature`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `fish_db`.`fish_tank_temperature` ;
CREATE TABLE IF NOT EXISTS `fish_db`.`fish_tank_temperature` (
`idfish_tank_temperature` INT NOT NULL AUTO_INCREMENT,
`time_value` TIMESTAMP NOT NULL,
`temperature` DOUBLE NOT NULL,
PRIMARY KEY (`idfish_tank_temperature`),
UNIQUE INDEX `idfish_tank_temperature_UNIQUE` (`idfish_tank_temperature` ASC),
INDEX `fish_tank_temperature_idx1` (`time_value` ASC, `temperature` ASC))
ENGINE = InnoDB;
SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
如果可以请帮帮忙。
答
您遇到的问题是,根据您的位置(悉尼是我在配置文件中看到的),您的系统可能配置为自动执行夏令时:10月4日凌晨2点凌晨3点,所以2015-10-04 02:00:27
是无效的日期时间。
也许你应该配置你的服务器使用UTC。
+0
100%Spot On。夏令时导致数据库死亡。很棒的发现。 –
你来自澳大利亚吗?你住哪个时区? – ojovirtual
执行'select @@ system_time_zone;'并检查结果。 – ojovirtual
@ ojovirtual 100%aussie。澳洲东部夏令时间 –