我正在尝试导入一个excel文件,其中包含一些数据并发生了错误。
SQLSTATE22007:无效的日期时间格式: 1292不正确的日期值:第1行'resident_dob‘列的'35492’
起初,我猜测它可能与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],
]);
}
我真的不知道该如何处理这个错误。有人能帮我吗?我对拉勒维尔还不熟。
发布于 2019-03-21 03:16:07
问题是SQL不支持在excel中输入的日期格式(除非对默认配置进行了修改)。
默认情况下,SQL可以将日期存储为1997-03-03 00:00:00,这将以PHP日期格式转换为Y-m-d H:i:s
。
因此,您需要手动将其转换为预期的格式,或者使用DateTime或laravel的碳包。下面我用了碳
在顶部声明这个
use Carbon;
现在转换日期
'resident_dob' => Carbon::parse($row[3])->format('Y-m-d H:i:s');
https://stackoverflow.com/questions/55272850
复制相似问题