date
名称 | 解释 |
显示格式 | YYYY-MM-DD |
显示范围 | 1601-01-01 到 9999-01-01 |
应用场景 | 当业务需求中只需要精确到天时,可以用这个时间格式 |
datetime
名称 | 解释 |
显示格式 | YYYY-MM-DD HH:mm:ss |
显示范围 | 1601-01-01 00:00:00 到 9999-12-31 23:59:59 |
应用场景 | 当业务需求中需要精确到秒时,可以用这个时间格式 |
timestamp
名称 | 解释 |
显示格式 | YYYY-MM-DD HH:mm:ss |
显示范围 | 1601-01-01 00:00:00 到 9999-12-31 23:59:59 |
应用场景 | 当业务需求中需要精确到秒或者毫秒时,或者该系统用于不同时区,可以用这个时间格式 |
如何选择:
1.当你的项目不关注十分秒只关注日期时,选择date
2.当你的项目关注十分秒,并不存在跨时区问题时,选择datetime
3.当你的项目关注十分秒并跨时区时,选择timestamp(它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回)
4.当你的项目又跨时区又关注十分秒和毫秒时,并且认为自己的项目能发展很久的话,时间需要选择bigint即对timestamp的补充(因为timestamp的最大存储范围到 ‘2038-01-19 03:14:07.999999’)