服务器数据库5.5,本地5.7在讲远程服务器导入到本地操做的时候,一直在date上报invalid value,最后定位在这样的语句上created_at date no null default '0000-00-00 00:00:00'
,这里涉及到两个问题:mysql
0000-00-00
。注:每种类型都有一个有效的范围,当给某类型设置一个无效值的时候,mysql会自动设置为“0”;timestamp类能够自动更新其时间(前提是sql-model中不包含‘NO_ZERO_DATE’)。sql
注:datetime和timestamp均可以添加6位分数部分来支持微妙精度,如2016-10-19 12:27: 33.999999数据库
datetime和timestamp对不少程序都能工做,可是某些场景下,却有优劣之分。datetime将时间封装在YYYYMMDDHHMMSS的整数中,与时区无关,并使用8个字节空间;timestamp使用4个字节,因此它的范围更短,如上所述,而且和时区紧密相关,同时timestamp会自动更新,列默认属性也是not null.安全
注:将unix时间存储为整数,不会带来任何收益,一般不建议这样作。服务器