首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel5.7: SQLSTATE[22007]:无效的日期时间格式: 1292个不正确的日期值:第1行'resident_dob‘列的'35492’

Laravel5.7: SQLSTATE[22007]:无效的日期时间格式: 1292个不正确的日期值:第1行'resident_dob‘列的'35492’
EN

Stack Overflow用户
提问于 2019-03-21 02:18:16
回答 1查看 6.4K关注 0票数 1

我正在尝试导入一个excel文件,其中包含一些数据并发生了错误。

SQLSTATE22007:无效的日期时间格式: 1292不正确的日期值:第1行'resident_dob‘列的'35492’

起初,我猜测它可能与excel文件中的数据有关,而且我注意到它的格式与SQL中的格式不匹配,所以我尝试更改它,但也发生了同样的错误。顺便说一下,这是Excel文件数据

下面是模型的代码:

代码语言:javascript
运行
复制
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],
    ]);
}

我真的不知道该如何处理这个错误。有人能帮我吗?我对拉勒维尔还不熟。

EN

回答 1

Stack Overflow用户

发布于 2019-03-21 03:16:07

问题是SQL不支持在excel中输入的日期格式(除非对默认配置进行了修改)。

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

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

在顶部声明这个

代码语言:javascript
运行
复制
use Carbon;

现在转换日期

代码语言:javascript
运行
复制
'resident_dob' => Carbon::parse($row[3])->format('Y-m-d H:i:s');
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55272850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档