2015-10-07 72 views
1

我在插入記錄到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。澳洲東部夏令時間 –

回答

3

您遇到的問題是,根據您的位置(悉尼是我在配置文件中看到的),您的系統可能配置爲自動執行夏令時:10月4日凌晨2點凌晨3點,所以2015-10-04 02:00:27是無效的日期時間。

也許你應該配置你的服務器使用UTC。

+0

100%Spot On。夏令時導致數據庫死亡。很棒的發現。 –