2016-05-13 4 views
3

-System Lokale PHP 5.6.19 App gemacht mit Laravel 5.0, mit fzaninotto/Faker als Seeder mySQL FernSQLSTATE [22007]: Ungültige Datetime-Format: 1292 Falscher Datetime-Wert: '2008-03-30 02.56.12'

Remote-MySQL Debian 8 mit MariaDB 10.1.13-MariaDB-1 ~ jessie

Lauf seeder

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

Nach seeder eine unbestimmte Anzahl von Benutzern (verschiedene ea hinzufügen ch Zeit der Reproduktion des Fehlers) erhalten Fehler:

[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)) 

Nun .. Datum ist es Zeit 2008-03-30 02.56.12

Ein Beispiel der letzten 3 Benutzer mit der Einzelkornsämaschine erstellt vor get Fehler:

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'); 

Lesen Sie einige Informationen, wie MYSQL incorrect DATETIME format, How to make sql-mode=“NO_ENGINE_SUBSTITUTION” permanent in MySQL my.cnf und mysql-Variablen für diese Frage prüfen.

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) 

Antwort

6

Die Frage ist einfach. Es ist ein Problem in Bezug auf die "Sommerzeit"

Durch Rücksprache mit der Tabelle für Daylight Saving Time Spain, und dieses Datum ist der Tag tatsächlich 27.03.2011 um 02.00 Uhr. Daher ist jedes Datum ein Tag, der eine Uhrzeit enthält, zwischen 02:00 und 02:59 wird ein Fehler sein, weil die Uhr von 02:00 auf 02:59 vorgerückt ist.

+0

Spalten ('created_at' und' updated_at') sind vom Typ TIMESTAMP? Mit dem Datentyp DATETIME passiert dies nicht. – wchiquito

+0

@wchiquito das ist es nicht die Frage. Frage, es ist USE DATETIME.Appreate Ihre Kommentare. Wenn sie sorgfältig gelesen wird, hat die Spalte das Datumsformat. Erro-Show. Und ja, passiert. Lies meine Lösung und versuche dasselbe Insert., Um das Problem zu reproduzieren. – abkrim

+0

Ich kann das Problem mit dem Datentyp 'DATETIME' nicht reproduzieren. Mit 'TIMESTAMP' erwartet man einen Fehler. – wchiquito

Verwandte Themen