zoukankan      html  css  js  c++  java
  • MySQL数据库时间类型的物理存储

    MySQL数据库时间类型的物理存储的相关知识是本文我们主要要介绍的内容,接下来就让我们一起来了解一下这部分内容吧。

    1.timestamp类型

    在行数据中记录的是时间戳,四个字节,将四个字节的数据转换为整数就是从1970开始的秒数值

    2.date类型

    存储3个字节,例如,若行中记录的是:

     

    1. (gdb) p buf[30]  
    2. $4 = 33 '!'  
    3. (gdb) p buf[31]  
    4. $5 = -73 '�'  
    5. (gdb) p buf[32]  
    6. $6 = 15 '\017' 

     

    表示为三个字节的二进制:

    00001111     10110111    00100001

    其中,1-5位表示日期,6-9位表示月份,剩余的表示年份,因此上述date类型可转换为2011-09-01

    3.year类型

    记录年份,用一个字节记录,从1900年开始

    例如

     

    1. (gdb) p buf[33]  
    2. $7 = 112 'p' 

     

    表示112+1900 = 2012年

    4.datetime

    8个字节表示,例如输入为:2011-08-27 19:32:46

     

    1. (gdb) p buf[30]  
    2. $122 = -98 '\236'  
    3. (gdb) p buf[31]  
    4. $123 = 3 '\003'  
    5. (gdb) p buf[32]  
    6. $124 = -74 '�'  
    7. (gdb) p buf[33]  
    8. $125 = 106 'j'  
    9. (gdb) p buf[34]  
    10. $126 = 74 'J'  
    11. (gdb) p buf[35]  
    12. $127 = 18 '\022'  
    13. (gdb) p buf[36]  
    14. $128 = 0 '\0'  
    15. (gdb) p buf[37]  
    16. $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, 与输入的日期相对应!

    关于MySQL数据库时间类型的物理存储的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

  • 相关阅读:
    mysql命令集锦
    linux 删除文件名带括号的文件
    linux下的cron定时任务
    struts2文件下载的实现
    贴一贴自己写的文件监控代码python
    Service Unavailable on IIS6 Win2003 x64
    'style.cssText' is null or not an object
    "the current fsmo could not be contacted" when change rid role
    远程激活程序
    新浪图片病毒
  • 原文地址:https://www.cnblogs.com/fingers/p/2435977.html
Copyright © 2011-2022 走看看