MySQL日期时间插入问题。奇怪的错误?

问题描述:

我在插入记录到MySQL 5.6.15版本时遇到问题。问题是日期时间。MySQL日期时间插入问题。奇怪的错误?

Table Setup 插入的第一条记录没有问题。 第二个抱怨日期。

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; 

如果可以请帮帮忙。

+0

你来自澳大利亚吗?你住哪个时区? – ojovirtual

+0

执行'select @@ system_time_zone;'并检查结果。 – ojovirtual

+0

@ ojovirtual 100%aussie。澳洲东部夏令时间 –

您遇到的问题是,根据您的位置(悉尼是我在配置文件中看到的),您的系统可能配置为自动执行夏令时:10月4日凌晨2点凌晨3点,所以2015-10-04 02:00:27是无效的日期时间。

也许你应该配置你的服务器使用UTC。

+0

100%Spot On。夏令时导致数据库死亡。很棒的发现。 –