文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MYSQL-数据类型存储-DATE

MYSQL-数据类型存储-DATE

时间:2009-05-31  来源:mysql2009

1. 环境版本:

  OS : LINUX AS4

  MYSQL: 5.0.51a-log

  ENGINE : Myisam

  2. 分析

  date 类型共占3个字节(24位),范围'1000-01-01'到'9999-12-31' , 格式'YYYY-MM-DD' ,

  其中:从左到右数

  1~15位: 存储年(共15位)

  16~19位: 存储月(共4位)

  20~24位: 存储日(共5位)

  比如," 2009-03-09",其中:

  十进制 十六进制 二进制

  -----------------------------------

  2009 -> 0X7D9 -> 000 0111 1101 1001

  03 -> 0X03 -> 0011

  09 -> 0X09 -> 01001

  -----------------------------------

  将二进制组合后: 0000 1111 1011 0010 0110 1001

  ------------------------------

  0 F B 2 6 9

  即十六进制: 0FB269

  注意:日期字段的数据是反向存储的.

  3. 验证

  下面我们可以来验证一下:

  drop table if exists heyf;

  create table heyf (id int ,birthday date) type myisam;

  insert into heyf values (12,'2009-03-09');

  system hexdump /opt/mysql/data/test/heyf.MYD

  ----------------------------

  0000000 0cf9 0000 6900 0fb2

  0000008

  ----------------------------

  其中:

  f9 : 标志位

  0c 00 00 00 : COL1 ,INT = 12

  69 b2 0f : 即日期.由于是反向存储,所以需要反向读取:0FB269

  4. 相关函数

  4.1 十六进制转成十进制

  select 0xa +0 ;

  --------------------

  10

  或

  select conv("a",16,10) ;

  --------------------

  10

  4.2 十进制转成十六进制

  select conv(10,10,16) ;

  --------------------

  A

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载