您的位置:首页技术文章
文章详情页

mysql - 记录开始时间和结束时间,表字段类型用timestamp还是datetime?

【字号: 日期:2022-06-17 09:39:30浏览:55作者:猪猪

问题描述

mysql数据库

时间都是近期的

问题解答

回答1:

推荐题主看看这篇帖子,总结的不错 选择合适的 MySQL 日期时间类型来存储你的时间

回答2:

先搜索下

这里回复很详细了

回答3:

timestamp相比于datetime的优势:

所占空间小,timestamp占4字节,而datetime占8字节;

包含时区信息,如果日后修改了时区的话,timestamp所表示的时间会随时区而变化,而datetime不会。

timestamp的劣势:

只能表示从1970年到2038年的时间,而datetime不受此限制。

性能方面比较,不能一概而论,timestamp虽然是纯数字,计算要快一些,但人类不可读,还必须要经过函数转化,datetime是字符串类型,人类肉眼直接可读,虽然计算加减乘除时要经过一道转化。

对于小应用来讲,空间不必考虑,性能不必考虑,时区都是北京时间,直接使用datetime就好了,不必纠结。

结论:永远使用datetime来表示时间,决不使用timestamp,除非你有明确的理由,或者你知道自己在干什么。

回答4:

两种类型都是存放时间的,至于内存占用和效率的区别在这里就不说了,一般应用中这点差异也对你系统没什么本质上的影响,所以我的观点是业务指向。datetime和timestamp比起来,timestamp类型的字段在数据库记录发生改变的时候(update)会自动更新这个字段的值,而datetime需要手动去设置才会改变。从业务角度进行筛选知道这点区别就行了,一般create time选datetime,update time选timestamp