我在将记录插入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'**
下面的架构创建脚本可用于您可能尝试的任何测试。
这是一个非常简单的架构和表,有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;
如果可以,请帮忙。
答案 0 :(得分:3)
您遇到的问题是,根据您的位置(悉尼是我在您的个人资料中看到的),您的系统可能配置为自动夏令时:10月4日凌晨2点是凌晨3点,所以2015-10-04 02:00:27
是无效的日期时间。
也许您应该将服务器配置为使用UTC。