一、来龙去卖
1、根据去IOE政策下达,项目需要从Oracel迁移到MySQL
2、日期格式,Oracle用datetime(7),7个字符存储
3、MySQL用6个字符存储,导致转换时出现:
Too big precision 7 specified for column 'create_time'. Maximum is 6.
4、而MySQL时间类型有:DATE,DATETIME,TIMESTAMP
5、问题:导出的数据有2400年跟9999年,比如:2400-06-12 12:00:00,存储失败了(因为MySQL起初选用了TIMESTAMP,超范围了)
6、解决:datetime(7) -> datetime
二、取值范围
MySQL日期取值范围 官网说明 | ||
类型 | 格式 | 取值范围 |
DATE | YYYY-MM-DD | '1000-01-01' to '9999-12-31' |
DATETIME | YYYY-MM-DD hh:mm:ss | '1000-01-01 00:00:00' to '9999-12-31 23:59:59' |
TIMESTAMP | DATE~DATETIME | '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC |