Laravel 5.7: SQLSTATE [22007]: недопустимый формат даты и времени: 1292 Неверное значение даты: «35492» для столбца «resident_dob» в строке 1 - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь импортировать файл Excel, содержащий некоторые данные, и произошла ошибка

SQLSTATE [22007]: неправильный формат даты и времени: 1292 Неверное значение даты: «35492» для столбца «resident_dob» в строке 1

Сначала я предполагал, что это могло быть с данными в файле Excel, и я заметил, что его формат не соответствует формату в SQL, поэтому я попытался изменить его, но та же ошибка произошло. Кстати вот Данные файла Excel

Вот код для модели:

public function model(array $row)
{
    return new Resident([
        'resident_fname' => $row[0],
        'resident_lname' => $row[1],
        'resident_mi'    => $row[2],
        'resident_dob'   => $row[3],
        'role'           => $row[4],
        'resident_age'   => $row[5],
        'resident_address'  => $row[6],
        'resident_contact'  => $row[7],
        'resident_email'    => $row[8],
        'resident_purok'    => $row[9],
        'resident_status'   => $row[10],
        'resident_gender'   => $row[11],
        'resident_religion' => $row[12],
        'ResidentVoter_status'  => $row[13],
    ]);
}

Я действительно понятия не имею, что делать с этой ошибкой. Кто-нибудь может мне с этим помочь? Я все еще новичок в Laravel.

1 Ответ

0 голосов
/ 21 марта 2019

Проблема в том, что SQL не поддерживает формат даты, который вы вводите в Excel (если только не изменена конфигурация по умолчанию)

По умолчанию SQL может хранить вашу дату как 1997-03-03 00:00:00, что переводится как Y-m-d H:i:s в формате даты PHP

Так что вам нужно вручную преобразовать его в ожидаемый формат, либо использовать DateTime или пакет Carbon laravel.Ниже я использовал Carbon

Объявите это наверху

use Carbon;

А теперь конвертируйте дату

'resident_dob' => Carbon::parse($row[3])->format('Y-m-d H:i:s');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...