Heim  >  Fragen und Antworten  >  Hauptteil

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

巴扎黑巴扎黑2743 Tage vor719

Antworte allen(4)Ich werde antworten

  • 巴扎黑

    巴扎黑2017-04-17 15:58:38

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

    Antwort
    0
  • 怪我咯

    怪我咯2017-04-17 15:58:38

    先搜索下

    这里回复很详细了

    Antwort
    0
  • PHPz

    PHPz2017-04-17 15:58:38

    timestamp相比于datetime的优势:

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

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

    timestamp的劣势:

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

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

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

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

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-17 15:58:38

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

    Antwort
    0
  • StornierenAntwort