Laravel 5.7:SQLSTATE [22007]:无效的日期时间格式:1292错误的日期值:第1行的“ resident_dob”列为“ 35492”

时间:2019-03-21 02:18:17

标签: excel laravel import laravel-5.7

我正在尝试导入包含一些数据的excel文件,并且发生了错误

  

SQLSTATE [22007]:无效的日期时间格式:1292错误的日期值:第1行的“ resident_dob”列的值为“ 35492”

起初,我猜想它可能与excel文件中的数据有关,并且我注意到它的格式与SQL中的格式不匹配,因此我尝试更改它,但存在相同的错误发生了。顺便说一下,这是Excel File Data

这是模型的代码:

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 :(得分:0)

问题是SQL不支持您在excel中输入的日期格式(除非改变了默认配置)

默认情况下,SQL可以将您的日期存储为1997-03-03 00:00:00,它以PHP日期格式转换为Y-m-d H:i:s

因此,您需要使用DateTime或laravel的Carbon包将其手动转换为期望的格式。下面我用了碳

在顶部声明

use Carbon;

现在转换日期

'resident_dob' => Carbon::parse($row[3])->format('Y-m-d H:i:s');