Wyjątek "Invalid datetime format: 1292 Incorrect datetime value" dla losowego rekordu

0

Kolejny raz muszę poprosić o poradę, mianowicie za pomocą biblioteki Faker próbuję wypełnić przykładową tabelę 30 000 rekordami w następujący sposób:

<?php

use Faker\Generator as Faker;

$factory->define(App\Car::class, function (Faker $faker) {

    $date = $faker->dateTimeBetween('-2 years', '+0 years')->format('Y-m-d H:i:s');

    return [
        'model' => $faker->sentence,
        'created_at' => $date,
        'updated_at' => $date
    ];

});

Pola created_at oraz updated_at zostały wygenerowane przez Laravel.

Najśmieszniejszy w tym wszystkim jest fakt, że kilka tysięcy rekordów zostaje dodanych do tabeli, ale losowo dla jednego rekordu rzucony jest wyjątek:

Illuminate\Database\QueryException  : SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2017-03-26 02:50:30' for column 'created_at' at row 1 (SQL: insert into `cars` (`model`, `created_at`, `updated_at`)...

i przez to seedowanie zostaje przerwane.

Pytanie: Dlaczego skoro dla mniej więcej 7-10 tysięcy rekordów zostaje dodanych bez problemu, a później "program" krzyczy i przerywa pracę? Winny jest PHP, Laravel, Faker, a może mysql? :)

Struktura bazy
created_at.png

1
linuxf napisał(a):

Incorrect datetime value: '2017-03-26 0230'

To nie jest prawidłowa godzina, tego dnia była zmiana czasu i taki punkt na osi czasu nigdy nie istniał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1