4 个回答

timestamp相比于datetime的优势:

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

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

timestamp的劣势:

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏