@@ -131,20 +131,20 @@ DATETIME_RE = re.compile(
131131 r " ( \d {1,4} ) -( \d {1,2} ) -( \d {1,2} ) [T ]( \d {1,2} ) :( \d {1,2} ) :( \d {1,2} ) (?: . ( \d {1,6} ) ) ? "
132132)
133133
134- cpdef datetime.datetime convert_datetime(str obj):
134+ cpdef object convert_datetime(str obj):
135135 """ Returns a DATETIME or TIMESTAMP column value as a datetime object:
136136
137137 >>> convert_datetime('2007-02-25 23:06:20')
138138 datetime.datetime(2007, 2, 25, 23, 6, 20)
139139 >>> convert_datetime('2007-02-25T23:06:20')
140140 datetime.datetime(2007, 2, 25, 23, 6, 20)
141141
142- Illegal values are returned as None :
142+ Illegal values are returned as str :
143143
144- >>> convert_datetime('2007-02-31T23:06:20') is None
145- True
146- >>> convert_datetime('0000-00-00 00:00:00') is None
147- True
144+ >>> convert_datetime('2007-02-31T23:06:20')
145+ '2007-02-31T23:06:20'
146+ >>> convert_datetime('0000-00-00 00:00:00')
147+ '0000-00-00 00:00:00'
148148
149149 """
150150 if isinstance (obj, (bytes, bytearray)):
@@ -163,18 +163,18 @@ cpdef datetime.datetime convert_datetime(str obj):
163163
164164TIMEDELTA_RE = re.compile(r " ( -) ? ( \d {1,3} ) :( \d {1,2} ) :( \d {1,2} ) (?: . ( \d {1,6} ) ) ? " )
165165
166- cpdef datetime.timedelta convert_timedelta(str obj):
166+ cpdef object convert_timedelta(str obj):
167167 """ Returns a TIME column as a timedelta object:
168168
169169 >>> convert_timedelta('25:06:17')
170170 datetime.timedelta(1, 3977)
171171 >>> convert_timedelta('-25:06:17')
172172 datetime.timedelta(-2, 83177)
173173
174- Illegal values are returned as None :
174+ Illegal values are returned as str :
175175
176- >>> convert_timedelta('random crap') is None
177- True
176+ >>> convert_timedelta('random crap')
177+ 'random crap'
178178
179179 Note that MySQL always returns TIME columns as (+|-)HH:MM:SS, but
180180 can accept values as (+|-)DD HH:MM:SS. The latter format will not
@@ -208,18 +208,18 @@ cpdef datetime.timedelta convert_timedelta(str obj):
208208
209209TIME_RE = re.compile(r " ( \d {1,2} ) :( \d {1,2} ) :( \d {1,2} ) (?: . ( \d {1,6} ) ) ? " )
210210
211- cpdef datetime.time convert_time(str obj):
211+ cpdef object convert_time(str obj):
212212 """ Returns a TIME column as a time object:
213213
214214 >>> convert_time('15:06:17')
215215 datetime.time(15, 6, 17)
216216
217- Illegal values are returned as None :
217+ Illegal values are returned as str :
218218
219- >>> convert_time('-25:06:17') is None
220- True
221- >>> convert_time('random crap') is None
222- True
219+ >>> convert_time('-25:06:17')
220+ '-25:06:17'
221+ >>> convert_time('random crap')
222+ 'random crap'
223223
224224 Note that MySQL always returns TIME columns as (+|-)HH:MM:SS, but
225225 can accept values as (+|-)DD HH:MM:SS. The latter format will not
@@ -250,18 +250,18 @@ cpdef datetime.time convert_time(str obj):
250250 except ValueError :
251251 return obj
252252
253- cpdef datetime.date convert_date(obj):
253+ cpdef object convert_date(obj):
254254 """ Returns a DATE column as a date object:
255255
256256 >>> convert_date('2007-02-26')
257257 datetime.date(2007, 2, 26)
258258
259- Illegal values are returned as None :
259+ Illegal values are returned as str :
260260
261- >>> convert_date('2007-02-31') is None
262- True
263- >>> convert_date('0000-00-00') is None
264- True
261+ >>> convert_date('2007-02-31')
262+ '2007-02-31'
263+ >>> convert_date('0000-00-00')
264+ '0000-00-00'
265265
266266 """
267267 if isinstance (obj, (bytes, bytearray)):
0 commit comments