mysql datetime和timestamp

  在mysql中表示日期的数据类型有很多,但是主要是datetime和timestamp两种存储类型,他们都是表示年月日时分秒的,在mysql中存储的时间精度都是秒级的。

  datetime存储的范围更大,能表示1001到9999年,他是把时间包装成YYYYMMDDHHMMSS的整数,然后采用8个字节来进行存储,不会携带时区的信息。

  timestamp存储的是格林尼治标准时间的时间戳,精度是秒级的,用4个字节来进行存储的,表示的范围要比datetime小,存储的效率要比datetime高,存储的时候携带了时区的信息,进行了当前服务器时区的转换。

注意:
    在时间存储上,应该尽量用bigint存储时间戳的解决方案,优点如下:

  • 时间存储精度上,mysql存储时间精度是秒级,不管是datetime还是timestamp,时间精度不高。
  • 时间比较效率高,bigint的大小比较要比datetime和timestamp高。
    缺点:bigint存储的时间查询阅读不太友好,datetime和timestamp方便阅读,并且时间不需要转化。

你可能感兴趣的:(mysql datetime和timestamp)