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

  • mysql数据库

  • 时间都是近期的

先搜索下

这里回复很详细了

timestamp相比于datetime的优势:

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

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

timestamp的劣势:

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

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

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

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

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注