这里是修真院后端小课堂,每篇分享文从
八个方面深度解析后端知识/技能,本篇分享的是:
【为什么DB的设计中要使用Long来替换掉Date类型?】
【修真院java 小课堂】为什么DB的设计中要使用Long来替换掉Date类型?
大家好,我是IT修真院深圳分院第12期的学员,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java任务1的深度思考-为什么DB的设计中要用Long来替代Date类型?
(1)背景介绍
在对数据库中的记录进行操作的时候,需要牵涉到对时间数据的处理,如create_at,update_at等字段,数据库中有专门用于存储时间的类型,date,还可以将类型设置为long类型,那么两者的有何差异?
(2)知识剖析
MySQL中的表示时间的类型
date:日期,占用三个字节,1000-01-01——9999-12-31
datetime:日期+时间,1000-01-01 00:00:00” 到“9999-12-31 23:59:59,占用8个字节,datetime类型适合用来记录数据的原始的创建时间,因为无论你怎么更改记录中其他字段的值,datetime字段的值都不会改变,除非你手动更改它。
timestamp:日期+时间,占用4个字节,“19700101080001——20380119111407,timestamp类型适合用来记录数据的最后修改时间,因为只要你更改了记录中其他字段的值,timestamp字段的值都会被自动更新。
MySQL中的bigint类型
bignit,表示从-263到263-1(即从-9,223,372,036,854,775,808到 9,223,372,036,854,775,807)之间的整数,它占用了八个字节的存储空间。
(3)常见问题
明明Date类型就该表示时间,为何要用bigint替代呢?
其实这个问题,网上意见也并不统一
一部分人的观点:
储存什么类型的,就该用什么类型
<
本文探讨了在数据库设计中使用Long而非Date类型的原因,涉及MySQL中时间类型和bigint的比较,以及处理时间数据时的考虑因素。常见问题在于是否应使用专用时间类型,但使用Long简化了时间差计算并避免了区域时间问题。
最低0.47元/天 解锁文章
1083

被折叠的 条评论
为什么被折叠?



