大家数据库的时间存什么类型

这几天在看fastadmin框架,发现框架推荐用bigint,但是我习惯用datetime看起来直观。
大家的数据库的时间使用什么类型 bigint 还是 datetime

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 28
slowlyo

datetime

1周前 评论
nff93

我跟着 laravel 学,用的 timestamp

1周前 评论

想用整型,但还是用的datetime,直观加调试方便

1周前 评论
MissYou-Coding

时间戳 秒

1周前 评论

created_at, updated_at 这些每个表都有的字段用 timestamp

其他有业务需求的字段用 datetime

1周前 评论

laravel使用的是timestamp,但是最大值就到2038年1月19日 03:14:07 UTC,其实对应的就是有符号的32位int类型最大值2,147,483,647 。

如果设置int类型为无符号,那么最大值可表示最大时间为2106年2月7日 06:28:15 UTC。如果设置为bigint,那么bigint对应的其实就是64位的int,那可用表示的时间就很长很长了。

如果设置的是datetime类型,它的范围是从 1000-01-01 00:00:00 到 9999-12-31 23:59:59

常用的可能就是timestamp32位/64位int类型(int和bigint),查询效率上两者差别不大,甚至在代码层面,有的时候timestamp不需要转换,可用直接使用显示。而且laravel中有强大的时间处理包Carbon,可用进行加减,自定义时间等等操作。不过我还是习惯int类型。

1周前 评论

timestamp 会带时区,datetime不带,原样输出

1周前 评论

TIMESTAMP和DATETIME的相同点:

1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。

TIMESTAMP和DATETIME的不同点:

1> 两者的存储方式不一样

对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。

而对于DATETIME,不做任何改变,基本上是原样输入和输出。

1周前 评论

涉及跨时区业务或较多时间转换运算,用时间戳;其他用timestamp就好了,2038年太遥远了,99%的项目熬不到那个时候。

1周前 评论
小白菜 1天前

timestamp

1周前 评论

我是跟着框架走 保持一致。 一个项目不要一时 datetime 一时 int 就行

1周前 评论

先想想项目能不能活到2038,或者需要用到2038年,再想想这点微弱的性能是否能引起你的注意,至于细节,楼上的说的很清楚了~

1周前 评论
雷雷 (楼主) 1周前
ononl 1周前

这种需要考虑具体的场景,比如说记录当前的时间,这种适合 timestamp,比如记录生日,过期时间等等,就得考虑超过超过2038年,或者1970年了

1周前 评论

个人习惯INT。只要一个项目统一就行其实

1周前 评论

习惯 timestamp 了

1周前 评论

跟着框架来,并没有一定要用哪个,因为要改动框架本身的格式会比较麻烦,所以框架用什么就跟着用什么就行了,放过自己,和自己和解一下子。

1周前 评论

额我是直接存int的时间戳

1周前 评论

datetime,用int很奇怪,时间不应该是用时间类型吗?设计数据库的人都出了日期字段,肯定就是让你用它的,而不是背道而驰把int当日期用。int是数字,而且大部分代码场景还是要将时间戳转换一下才能继续用,这样也多浪费了性能。

1周前 评论

int就够了,bigint没必要,咱也活不了这么长时间

1周前 评论

视情况决定,大部分是timestamp,不过有一次我在同步一家医院病人数据的时候,他们的病人出生日期低于1970-01-01,然后因为字段类型是timestamp直接报错:joy_cat:

1周前 评论

int 好查询,直接 = 就查询了

1天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!