一种解析Mysql数据库时间格式的方法技术

技术编号:15792087 阅读:95 留言:0更新日期:2017-07-09 23:16
本发明专利技术公开了一种解析Mysql数据库时间格式的方法,找到底层数据,转换为二进制后;分割数据;将分割的数据转换为十进制数;设基年和基数;执行公式得到N;判断N是否大于基年;计算月份域;判断月份是否在月份域内;执行公司计算出年份和月份。本发明专利技术的有益效果如下:通过公式完整高效的对Mysql数据库时间格式进行解析,不会解析错误。

【技术实现步骤摘要】
一种解析Mysql数据库时间格式的方法
本专利技术涉及信息安全
,特别涉及一种解析Mysql数据库时间格式的方法。
技术介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。目前在恢复MySQL数据时出现恢复出的时间为乱码或错误的情况。
技术实现思路
本专利技术针对现有技术的不足,提供了一种解析Mysql数据库时间格式的方法。为解决以上问题,本专利技术采用的技术方案如下:一种解析Mysql数据库时间格式的方法,包括以下步骤:S1:找到日期的底层数据的5字节;S2:转变为二进制数;S3:分割为6组数,6组的位数分别为14位、4位、5位、5位、6位、6位,分别对应年、月、日、小时、分钟、秒数;S4:将上述位数转换为十进制,得到日、小时、分钟、秒数的正确时间,并将得到的年对应的数设为Y,将月对应的数设为M;S5:设当年为基年,Y-基年=基数;S6:执行公式:Y-基数=N;S7:判断N是否大于基年,并记录判断结果;S8:执行公式得到月份域:1+(基年-N)*3=N1;12+(基年-N)*3=N12;及月份域是N1至N12的12个数;S9:判断M是否为N1至N12之间的任意数值,若是则取M在月份域中的位数为月份,N为年份的正确时间,结束;若不是则执行S10;S10:判断S7的结果,若N小于2016则执行S11;若N大于2016则执行S12;S11:执行公式M+16=M;N-1=N;返回执行S8;S12:执行公式M-16=M;N+1=N;返回执行S8。本专利技术的有益效果如下:通过公式完整高效的对Mysql数据库时间格式进行解析,不会解析错误。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照实施例,对本专利技术做进一步详细说明。一种解析Mysql数据库时间格式的方法,包括以下步骤:S1:找到日期的底层数据的5字节;S2:转变为二进制数;S3:分割为6组数,6组的位数分别为14位、4位、5位、5位、6位、6位,分别对应年、月、日、小时、分钟、秒数;S4:将上述位数转换为十进制,得到日、小时、分钟、秒数的正确时间,并将得到的年对应的数设为Y,将月对应的数设为M;S5:设当年为基年,Y-基年=基数;S6:执行公式:Y-基数=N;S7:判断N是否大于基年,并记录判断结果;S8:执行公式得到月份域:1+(基年-N)*3=N1;12+(基年-N)*3=N12;及月份域是N1至N12的12个数;S9:判断M是否为N1至N12之间的任意数值,若是则取M在月份域中的位数为月份,N为年份的正确时间,结束;若不是则执行S10;S10:判断S7的结果,若N小于2016则执行S11;若N大于2016则执行S12;S11:执行公式M+16=M;N-1=N;返回执行S8;S12:执行公式M-16=M;N+1=N;返回执行S8。为了更好的理解分专利技术,下面举例说明;实施例一:提取的日期底层数据为“999842DAA1”;其转换为2进制1001100110011000010000101101101010100001;转换为10进制,秒100001=33,分101010=42,时01101=13,日00001=1,月0001=1,年10011001100110=9830;设基年为2016年,9830-2016=7814,7814为基数;年份的数据为9830-7814=2016,执行公式,1+(2016-2016)*3=1;12+(2016-2016)*3=12;月份为1在1至12的月份域内,因此确定时间为2016年1月1日13时42分33秒。实施例二:提取的日期底层数据为“999BA7011C”;转换为2进制为1001100110001000000000101101101010001101;转换为10进制年=9826,月=0,日=1,时=13,分=42,秒=13;同样设基年为2016年,9830-2016=7814,7814为基数;9826-7814=2012,执行公式1+(2016-2012)*3=13;12+(2016-2012)*3=24;月份0不在12至24之间,因此执行0+16=16;2012-1=2011;执行1+(2016-2011)*3=16;12+(2016-2011)*3=27;月份16在月份域16值27的第一位,第一位表示1月,因此月份为1月;确定时间为2011年1月1日13时42分13秒。实施例三:提取的日期底层数据为“999EE70D2507”;转换为2进制为1001100110011110111001110000110100100101;转换为10进制年=9831,月=11,日=19,时=16,分=52,秒=37;同样设基年为2016年,9830-2016=7814,7814为基数;9831-7814=2017,执行公式1+(2016-2017)*3=-2;12+(2016-2017)*3=10;月份11不在-2至10之间,因此执行11-16=-5;2017+1=2018;执行1+(2016-2018)*3=-5;12+(2016-2018)*3=6;月份-5在月份域-5值6的第一位,第一位表示1月,因此月份为1月;确定时间为2018年1月19日16时52分37秒。本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本专利技术的实施方法,应被理解为本专利技术的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本专利技术公开的这些技术启示做出各种不脱离本专利技术实质的其它各种具体变形和组合,这些变形和组合仍然在本专利技术的保护范围内。本文档来自技高网...

【技术保护点】
一种解析Mysql数据库时间格式的方法,其特征在于包括以下步骤:S1:找到日期的底层数据的5字节;S2:转变为二进制数;S3:分割为6组数,6组的位数分别为14位、4位、5位、5位、6位、6位,分别对应年、月、日、小时、分钟、秒数;S4:将上述位数转换为十进制,得到日、小时、分钟、秒数的正确时间,并将得到的年对应的数设为Y,将月对应的数设为M;S5:设当年为基年,Y‑基年=基数;S6:执行公式:Y‑基数=N;S7:判断N是否大于基年,并记录判断结果;S8:执行公式得到月份域:1+(基年‑N)*3=N

【技术特征摘要】
1.一种解析Mysql数据库时间格式的方法,其特征在于包括以下步骤:S1:找到日期的底层数据的5字节;S2:转变为二进制数;S3:分割为6组数,6组的位数分别为14位、4位、5位、5位、6位、6位,分别对应年、月、日、小时、分钟、秒数;S4:将上述位数转换为十进制,得到日、小时、分钟、秒数的正确时间,并将得到的年对应的数设为Y,将月对应的数设为M;S5:设当年为基年,Y-基年=基数;S6:执行公式:Y-基数=N;S7:判断N是否大于基年,并记录判...

【专利技术属性】
技术研发人员:梁效宁许超明赵飞何升
申请(专利权)人:四川艾特赢泰智能科技有限责任公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1