2016-05-13 102 views
3

系統 本地PHP 5.6.19 應用與Laravel 5.0製成,使用fzaninotto /法克爾作爲播種機 MySQL的遠程SQLSTATE [22007]:無效日期時間格式:1292不正確的日期時間值: '2008-03-30 2點56分12秒'

遠程MySQL 的Debian 8 MariaDB的10.1.13-MariaDB的-1〜傑西

運行播種機

php artisan migrate:reset; php artisan migrate; php artisan db:seed 

後播種機添加用戶的一個不確定的數量(不同EA CH時間錯誤的再現)得到錯誤:

[Illuminate\Database\QueryException] 
    SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2008-03-30 02:56:12' for column 'created_at' at row 1 (S 
    QL: insert into `users` (`type`, `name`, `email`, `nick`, `password`, `vat`, `address`, `zipcode`, `city`, `state`, `country`, `cr 
    eated_at`, `updated_at`) values (customer, Adrian Santos, [email protected], rzavala12, y$Veqd2mkgRHtl6VKtYBV0yey77tVLo34.6THXqhtGRwg 
    /Ea73/FhlK, 02058805Y, Plaça Abril, 85, 96º D, 44824, Vargas de San Pedro, 57431, San Roig, Huesca, ES, 2008-03-30 02:56:12, 2008- 
    03-30 02:56:12)) 

嗯..日期時間是2008-03-30 2點56分12秒

與播種機創建最新的3個用戶的例子之前GET錯誤:

INSERT INTO `users` (`id`,`type`,`email`,`nick`,`password`,`name`,`vat`,`address`,`zipcode`,`city`,`state`,`country`,`totals`,`remember_token`,`created_at`,`updated_at`) VALUES (15053,'buyer','[email protected]','celia657','$2y$10$P4SOJOAQHsC8W7ctJ5v1F.8loccYzjAW95ILwWZ1RzObNs01hKjr2','Bruno Aguado','71514876X','Paseo Corral, 1, Entre suelo 0º, 63362, La Saiz','58061','Navarrete de Ulla','Cádiz','ES',NULL,NULL,'2012-09-13 06:01:51','2012-09-13 06:01:51'); 
INSERT INTO `users` (`id`,`type`,`email`,`nick`,`password`,`name`,`vat`,`address`,`zipcode`,`city`,`state`,`country`,`totals`,`remember_token`,`created_at`,`updated_at`) VALUES (15052,'buyer','[email protected]','cristian126','$2y$10$fe2Hdh4p0bttNfo9uzwSe.L5OOzPwsm5p8g5.YhW5PAoxKcSObDta','Enrique Rivero','06604287K','Ronda Saul, 321, 8º C, 76264, San Álvarez de Arriba','11402','El Roybal Baja','Zamora','ES',NULL,NULL,'2007-11-14 16:39:41','2007-11-14 16:39:41'); 
INSERT INTO `users` (`id`,`type`,`email`,`nick`,`password`,`name`,`vat`,`address`,`zipcode`,`city`,`state`,`country`,`totals`,`remember_token`,`created_at`,`updated_at`) VALUES (15051,'buyer','[email protected]','aalmanza21','$2y$10$EA.NhWHuT8.nGoZjD18hqOKatHH3MbboY2DjZywlceH8K60spAe5m','Miriam Riojas','24055470T','Calle Soriano, 0, 75º A, 29744, L\' Montenegro','12236','As Martínez','Illes Balears','ES',NULL,NULL,'2013-03-25 23:15:50','2013-03-25 23:15:50'); 
INSERT INTO `users` (`id`,`type`,`email`,`nick`,`password`,`name`,`vat`,`address`,`zipcode`,`city`,`state`,`country`,`totals`,`remember_token`,`created_at`,`updated_at`) VALUES (15050,'buyer','[email protected]','mateo26','$2y$10$6.lFRsqEjXb1kdZOhAX7Cu1Xecgu1ZvAkhaADKcfSpEi6ODQM9nRK','Alonso Núñez','50161945A','Camino Ainara, 78, 65º A, 17155, L\' Ayala del Pozo','47226','Román de las Torres','Las Palmas','ES',NULL,NULL,'2016-05-12 11:00:01','2016-05-12 11:00:01'); 

看了一些資料,例如MYSQL incorrect DATETIME formatHow to make sql-mode=「NO_ENGINE_SUBSTITUTION」 permanent in MySQL my.cnf和驗證的MySQL變量這個問題。

MariaDB [(none)]> select @@GLOBAL.sql_mode; 
-------------- 
select @@GLOBAL.sql_mode 
-------------- 

+------------------------+ 
| @@GLOBAL.sql_mode  | 
+------------------------+ 
| NO_ENGINE_SUBSTITUTION | 
+------------------------+ 
MariaDB [(none)]> select @@SESSION.sql_mode; 
-------------- 
select @@SESSION.sql_mode 
-------------- 

+------------------------+ 
| @@SESSION.sql_mode  | 
+------------------------+ 
| NO_ENGINE_SUBSTITUTION | 
+------------------------+ 
1 row in set (0.00 sec) 

回答

6

問題很簡單。這是關於「夏令時」的問題

通過查閱Daylight Saving Time Spain的表,並且該日確實是27/03/2011在02:00 PM的一天。因此,任何日期都是包含時間的一天,在02:00到02:59之間將是一次失敗,因爲時鐘從02:00前進到02:59。

+0

列('created_at'和'updated_at')的類型是TIMESTAMP?對於數據類型DATETIME,這不會發生。 – wchiquito

+0

@wchiquito這不是問題。問題是使用DATETIME.Apreciate您的意見。另外如果仔細閱讀,列有數據時間格式。 Erro秀。是的,發生。閱讀我的解決方案,並嘗試相同的插入,以重現問題。 – abkrim

+0

我無法重現數據類型爲'DATETIME'的問題。使用'TIMESTAMP'發生預期錯誤。 – wchiquito

相關問題