Laravel日期时间问题

时间:2019-07-16 23:12:08

标签: php sql laravel datetime

在laravel网站上注册后,我可以很高兴进行注册,但是,只要某人的生日似乎是1970年之前的较早日期,它总是会抛出这样的错误

Illuminate \ Database \ QueryException(22007) SQLSTATE [22007]:

  

无效的日期时间格式:1292错误的日期时间值:'1963-07-17'   第1行的cp644657_portalusersdate_of_birth列(SQL:   插入usersnameemailaddress_line_1suburb,   statepost_codedate_of_birthmobileposition,   passwordupdated_atcreated_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_portalusersdate_of_birth在第1行(22007)

1 个答案:

答案 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'。