使用 pymysql 读取记录的时候,如果对应的字段是 datetime 类型的话,pymysql 会把对应的字段转为 datetime 类型,而不在是字符串,为什么呢?如何实现的呢?

其实很简单,mysql server 返回的 response 可不是一个字符串哦,而是二进制流。
返回字段值、字段名、字段类型都在其中说明了,而不是我们肉眼可见的简单货色。

如果你想看到协议中的内容,可以使用 wireshark 抓包看看,前提是关闭 mysql serverssl 启动
image.png

image.png

总结:返回的数据中包含了每列的 metadata 信息,包含这个列来自哪个数据库、哪个数据表、数据类型是什么等等


universe_king
3.4k 声望680 粉丝