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

MySQL Datetime insert issue. Weird bug?

我在向 MySQL 版本 5.6.15 中插入记录时遇到问题。问题是日期时间。

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

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

下面是架构创建脚本,您可以尝试进行任何测试。

这是一个非常简单的架构,table 有 3 列。 一个自动递增的主键,time_value 和温度读数

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@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 SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

如果可以请帮忙

你遇到的问题是,根据你的位置(我在你的个人资料中看到的是悉尼),你的系统可能配置为自动执行夏令时:10 月 4 日 2 a.m .它是 3 a.m,所以 2015-10-04 02:00:27 是一个无效的日期时间。

也许您应该将服务器配置为使用 UTC。