datetime在mysql5.6.4之前占用8个字节,在mysql5.6.4及以后,占用5-8个字节。
差别是5.6.4及之后对秒数小数位(Fractional Seconds)的精度不同,存储所需的空间也不同,最高支持到微秒(比如:2015-12-20 10:01:00.999999.),需要额外的3个字节。
timestamp在mysql里实际是存储的从UTC时区1970-01-01 00:00:01到对应时间的时间差,需要用4个字节存储,实际上相当于int(11)。timestamp只能存储从1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07的范围,如果日期超过2038年,就要使用datetime。
另外,datetime占用的5个字节是怎么分配的?
- 1 bit sign (1= non-negative, 0= negative)
- 17 bits year*13+month (year 0-9999, month 0-12)
- 5 bits day (0-31)
- 5 bits hour (0-23)
- 6 bits minute (0-59)
- 6 bits second (0-59)
- ---------------------------
- 40 bits = 5 bytes
信息加载中,请等待
微信客服(速回)
微信客服(慢回)