MySQL-mysql的时间类型可以用int,DateTime,Timestamp,一般大家都用哪些类型做为时间?

小组聊天灌水 小组聊天灌水 主题:993 回复:2175

MySQL-mysql的时间类型可以用int,DateTime,Timestamp,一般大家都用哪些类型做为时间?

虐人心 发布于 2017-08-02 字数 101 浏览 1086 回复 8

mysql的时间类型可以用int,DateTime,Timestamp,在项目开发中一般大家都用哪些类型做为时间?为什么?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(8

甜柠檬 2017-10-20 8 楼

常用int(11) unsigned

浮生未歇 2017-10-08 7 楼

我还是比较喜欢用int存Unix時間戳,强列建议大家不要用datetime,碰上多时区时,对datetime值转换会要命,比如要将多个时区的数据汇总,用统一的时区去统计。

对于4个字节存储,到2038年就不够用了
建议用int unsigned可以用到2106年

晚风撩人 2017-09-14 5 楼

具体项目具体分析吧,像毛哥说的那样,如果有时区不同的int存Unix時間戳,而如果是像文章的表,文章写好发布后时间固定了,用datetime就好点,最起码不用时间转换了。

偏爱自由 2017-08-31 4 楼

我同意magic所说的 还有就是需要看你使用的mysql版本 mysql后面的几个版本好像对这几个时间格式又做了一些处理

泛泛之交 2017-08-29 3 楼

int适合计算较多且不给人看的情况(工具格式化除外);

其他俩对人比较友好,适合计算不多但常常人工检视的情况,如通过日志验证等;
timestamp的底层实现应该也是int吧,只是IO通过时间格式(推测);
而他们的时区问题,是DB引入的,DB把这俩类型作为时间看待,就要考虑时区才能有效解释这些数据,如果当作纯粹的数值就没问题了,即:由应用来决定时区以及算出最终要存储的时间数据,DB仅仅存储这些数据不做解释。

想挽留 2017-08-16 2 楼

我最常用 int(11)
表中经常使用的字段 create_at update_at 就这种类型

好处: 方便啊,不用转来转去的,做 order 的时候 可能会快吧

虐人心 2017-08-05 1 楼

我们一般用Timestamp.
因为Timestamp的存储空间占用的更少,只要4个字节来存储,而datetime需要8个字节来存储.
Timestamp的存储范围比datetime要小,但是在实际项目中已经足够了