From 24def63336b2a5602e1480a5f44640335cbef437 Mon Sep 17 00:00:00 2001 From: Rong Zhao Date: Tue, 11 Oct 2022 16:14:41 +0800 Subject: [PATCH] Fix: Bug #108733 python connector will return a date object when time is 00:00:00 --- lib/mysql/connector/protocol.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/mysql/connector/protocol.py b/lib/mysql/connector/protocol.py index 9e42fb48..fc511c07 100644 --- a/lib/mysql/connector/protocol.py +++ b/lib/mysql/connector/protocol.py @@ -509,16 +509,25 @@ def _parse_binary_new_decimal(packet, charset="utf8"): return (packet, Decimal(value.decode(charset))) @staticmethod - def _parse_binary_timestamp(packet): + def _parse_binary_timestamp(packet, field): """Parse a timestamp from a binary packet""" length = packet[0] value = None if length == 4: - value = datetime.date( - year=struct.unpack("= 7: mcs = 0 if length == 11: @@ -587,7 +596,7 @@ def _parse_binary_values(self, fields, packet, charset="utf-8"): FieldType.DATE, FieldType.TIMESTAMP, ): - (packet, value) = self._parse_binary_timestamp(packet) + (packet, value) = self._parse_binary_timestamp(packet, field) values.append(value) elif field[1] == FieldType.TIME: (packet, value) = self._parse_binary_time(packet)