MySQL数据库时间类型怎么物理存储
1.timestamp类型
在行数据中记录的是时间戳,四个字节,将四个字节的数据转换为整数就是从1970开始的秒数值
2.date类型
存储3个字节,例如,若行中记录的是:
(gdb)pbuf[30]$4=33'!'(gdb)pbuf[31]$5=-73'�'(gdb)pbuf[32]$6=15'\017'
表示为三个字节的二进制:
000011111011011100100001
其中,1-5位表示日期,6-9位表示月份,剩余的表示年份,因此上述date类型可转换为2011-09-01
3.year类型
记录年份,用一个字节记录,从1900年开始
例如
(gdb)pbuf[33]$7=112'p'
表示112+1900=2012年
4.datetime
8个字节表示,例如输入为:2011-08-2719:32:46
(gdb)pbuf[30]$122=-98'\236'(gdb)pbuf[31]$123=3'\003'(gdb)pbuf[32]$124=-74'�'(gdb)pbuf[33]$125=106'j'(gdb)pbuf[34]$126=74'J'(gdb)pbuf[35]$127=18'\022'(gdb)pbuf[36]$128=0'\0'(gdb)pbuf[37]$129=0'\0'
那么转换为(256-98)+3*256+(256-74)*256*256+106*256*256*256+74*256*256*256*256+18*256*256*256*256*256
计算结果为:20110827193246,与输入的日期相对应!
下一篇:PHP中执行排序优势有哪些