技术开发 频道

MySQL-数据类型存储-TIMESTAMP

  4. 另外一种算法:

  4.1 分析

  存储时:

  1) 将用户输入的时间,与当前SESSION TIME_ZONE 相减. (得到标准格林威治时间)

  2) 将第1步结果与时间" 1970-01-01 00:00:00"相减,得到X秒

  3) 将第2步结果转换与十六进制,并反向

  读取时:

  1) 定位到行后,将字段值反向并转换成十进制;

  2) 将第1步结果与 " 1970-01-01 00:00:00"相加;

  3) 将第2步结果与 当前SESSION TIME_ZONE 相加,并将结果输出给用户

  4.2 验证:

  比如,当前TIME_ZONE='+08:00' ,time = '2008-05-09 15:09:48' ,

  存储时:

  1) select '2008-05-09 15:09:48'- interval 8 hour ;

  --> 2008-05-09 07:09:48

  2) select datediff('2008-05-09','1970-01-01')*24*3600 + time_to_sec('07:09:48');

  --> 1210316988

  3) select conv(1210316988,10,16) ;

  --> 4823F8BC

  反向:

  --> BC F8 32 48

0
相关文章