我在mysql连接器8.0.11中使用c xdevapi,并尝试在程序中读取时间戳。它们是从数据库中以二进制形式获取的,我无法弄清楚它是如何编码的。我假设它会反映此处记录的内部编码:https://dev.mysql.com/doc/internals/en/date-and-time-data-type-representation.html
但是,实验似乎无法证实这一点。当我阅读设置为以下内容的列时:
epoch (1970-1-1 00:00:00)
我读入二进制值01010FB2。而且,增加一分钟会增加宽度到6个字节,增加一个小时会增加5个字节。这些都不符合我的期望。
我在xdevapi文档中找不到时间戳记,我真的希望有人能够帮助我。
答案 0 :(得分:0)
所以我通过查看xdevapi的Java实现来解决这个问题。字节是一个protobuf编码的流。
要解析您从编码流中读取的日期时间或时间戳结构,请按年,月,日,时,分,秒,纳秒的顺序,方法是调用GetVarint32,直到您已读取纳秒或没有更多数据为止。编码流。