GMT:
Greenwich Mean Time 格林尼治标准时间。这是以英国格林尼治天文台观测结果得出的时间,这是英国格林尼治当地时间,这个地方的当地时间过去被当成世界标准的时间。
UT:
Universal Time 世界时。根据原子钟计算出来的时间。
UTC:
Coordinated Universal Time 协调世界时。因为地球自转越来越慢,每年都会比前一年多出零点几秒,每隔几年协调世界时组织都会给世界时+1秒,让基于原子钟的世界时和基于天文学(人类感知)的格林尼治标准时间相差不至于太大。并将得到的时间称为UTC,这是现在使用的世界标准时间。协调世界时不与任何地区位置相关,也不代表此刻某地的时间,所以在说明某地时间时要加上时区也就是说GMT并不等于UTC,而是等于UTC+0,只是格林尼治刚好在0时区上。GMT = UTC+0
CST:
Chinese Standard Time中国标准时。
CST = UTC+8
此处+8是指+8h
Mysql中timestamp的存取方式:
存:
Mysql将timestamp按照系统当前所处时区处理为UTC时间戳。
比如在中国,insert一个时间戳current,则过程为以下:
- current = current - 8,将时间戳换为UTC时间戳
- 存储UTC时间戳
取:
3. Mysql检查当前系统所处时区
4. current = current + 8,将UTC时间戳转化为本地时区的时间戳
5. 输出时间戳
【注】底层存储时间都是UTC,然后操作的时候根据时区相应环境变量转换成相应时区
Mysql中datetime用5个字节来存储日期和时间,用另外3个字节来存储小数部分。其中存储小数部分用的是4bits一个精度。
精度|空间
1,2|1byte
3,4|2bytes
5,6|3bytes