1、错误重现
出现插入错误的数据表如下:
字段endDate数据类为timestamp,在执行插入后出现
ERROR 1292 (22007): Incorrect datetime value: '9999-12-31' for column 'endDate' at row 1
2、错误解决
查找资料得知timestamp类型取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59,datetime 类型取值范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59。如果需要保存超过2037-12-31 23:59:59的时间,则需要将时间类型修改为datetime。如果保存的时间只需要日期无需时间,则可以使用date时间类型
3、总结
3.1、时间类型timestamp介绍
a、timestamp类型取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59
b、timestamp类型具有自动初始化和自动更新的特性
c、timestamp字段保存的时间和时区密切相关,时区不同保存的时间也不相同
3.2、时间类型datetime介绍
a、datetime 类型取值范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59