From a9dc925287cee27f901ef89c3fb16c75645d3d94 Mon Sep 17 00:00:00 2001 From: crawlersick Date: Tue, 27 Apr 2021 17:41:03 +0800 Subject: [PATCH 1/2] pendulum just perform the same as datetime in convert --- lib/mysql/connector/conversion.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/mysql/connector/conversion.py b/lib/mysql/connector/conversion.py index 8df9b83..1796a3f 100644 --- a/lib/mysql/connector/conversion.py +++ b/lib/mysql/connector/conversion.py @@ -268,6 +268,15 @@ def _nonetype_to_mysql(self, value): """ return None + def _pendulum_to_mysql(self, value): + """ + pendulum just perform the same as datetime + add this to support python type pendulum + related issue to https://github.com/apache/airflow/issues/10795 + """ + return _datetime_to_mysql(self, value) + + def _datetime_to_mysql(self, value): """ Converts a datetime instance to a string suitable for MySQL. From 9a224b96250ba81f2bcc279496befcff309ae88a Mon Sep 17 00:00:00 2001 From: John M C Carthy Date: Tue, 27 Apr 2021 18:43:40 +0800 Subject: [PATCH 2/2] Update conversion.py --- lib/mysql/connector/conversion.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/mysql/connector/conversion.py b/lib/mysql/connector/conversion.py index 1796a3f..b84551b 100644 --- a/lib/mysql/connector/conversion.py +++ b/lib/mysql/connector/conversion.py @@ -274,7 +274,17 @@ def _pendulum_to_mysql(self, value): add this to support python type pendulum related issue to https://github.com/apache/airflow/issues/10795 """ - return _datetime_to_mysql(self, value) + if value.microsecond: + fmt = '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}.{6:06d}' + return fmt.format( + value.year, value.month, value.day, + value.hour, value.minute, value.second, + value.microsecond).encode('ascii') + + fmt = '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}' + return fmt.format( + value.year, value.month, value.day, + value.hour, value.minute, value.second).encode('ascii') def _datetime_to_mysql(self, value):