在laravel网站上注册后,我可以很高兴进行注册,但是,只要某人的生日似乎是1970年之前的较早日期,它总是会抛出这样的错误
Illuminate \ Database \ QueryException(22007) SQLSTATE [22007]:
无效的日期时间格式:1292错误的日期时间值:'1963-07-17' 第1行的
cp644657_portal
。users
。date_of_birth
列(SQL: 插入users
(name
,address_line_1
,suburb
,state
,post_code
,date_of_birth
,mobile
,position
,password
,updated_at
,created_at
)值(测试Tesy, test@testwrr.tesy,测试,测试,测试,4151,1963-07-17,0400000000,, $ 2y $ 10 $ H4Ey15q0XqunxuLmziE01OhR3jTEBIHzNJZscA85mQdf88nrYDgEa, 2019-07-16 23:11:07,2019-07-16 23:11:07))
以前的例外情况
SQLSTATE [22007]:无效的日期时间格式:1292错误的日期时间 值:列的值为“ 1963-07-17”
cp644657_portal
。users
。date_of_birth
在第1行(22007)
答案 0 :(得分:1)
听起来您正在尝试将数据存储在TIMESTAMP列中。对于1970年之前的日期,您需要将其更改为DATE或DATETIME。
https://dev.mysql.com/doc/refman/5.5/en/datetime.html
DATE 类型用于具有日期部分但没有时间部分的值。 MySQL检索并以'YYYY-MM-DD'格式显示DATE值。支持的范围是“ 1000-01-01”到“ 9999-12-31”。
DATETIME 类型用于包含日期和时间部分的值。 MySQL检索并以'YYYY-MM-DD hh:mm:ss'格式显示DATETIME值。支持的范围是“ 1000-01-01 00:00:00”到“ 9999-12-31 23:59:59”。
TIMESTAMP 数据类型用于包含日期和时间部分的值。 TIMESTAMP的UTC范围是'1970-01-01 00:00:01'到UTC的范围是'2038-01-19 03:14:07'。