@@ -187,11 +187,7 @@ abstract struct MySql::Type
187
187
d = v.days
188
188
raise ArgumentError .new(" MYSQL TIME over 34 days cannot be saved - https://dev.mysql.com/doc/refman/5.7/en/time.html" ) if d > 34
189
189
microsecond : Int32
190
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
191
- microsecond = (v.nanoseconds // 1000 ).to_i32
192
- {% else % }
193
- microsecond = (v.nanoseconds / 1000 ).to_i32
194
- {% end % }
190
+ microsecond = (v.nanoseconds // 1000 ).to_i32
195
191
packet.write_blob UInt8 .slice(
196
192
negative, d.to_i8, (d >> 8 ).to_i8, (d >> 16 ).to_i8, (d >> 24 ).to_i8,
197
193
v.hours.to_i8, v.minutes.to_i8, v.seconds.to_i8,
@@ -211,7 +207,7 @@ abstract struct MySql::Type
211
207
minute = packet.read_byte!.to_i32
212
208
second = packet.read_byte!.to_i32
213
209
ns = pkt > 8 ? (packet.read_int.to_i32 * 1000 ) : nil
214
- time = ns ? ::Time ::Span .new(days, hour, minute, second, nanoseconds: ns) : ::Time ::Span .new(days, hour, minute, second)
210
+ time = ns ? ::Time ::Span .new(days: days, hours: hour, minutes: minute, seconds: second, nanoseconds: ns) : ::Time ::Span .new(days: days, hours: hour, minutes: minute, seconds: second)
215
211
negative > 0 ? (::Time ::Span .new(nanoseconds: 0 ) - time) : time
216
212
end
217
213
@@ -222,25 +218,17 @@ abstract struct MySql::Type
222
218
rescue
223
219
time = ::Time .parse(str, " %H:%M:%S" , location: MySql ::TIME_ZONE )
224
220
end
225
- ::Time ::Span .new(0 , time.hour, time.minute, time.second, nanoseconds: time.nanosecond)
221
+ ::Time ::Span .new(days: 0 , hours: time.hour, minutes: time.minute, seconds: time.second, nanoseconds: time.nanosecond)
226
222
end
227
223
end
228
224
decl_type DateTime , 0x0c u8, ::Time do
229
225
def self.write (packet, v : ::Time )
230
226
v = v.in(location: MySql ::TIME_ZONE )
231
227
microsecond : Int32
232
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
233
- microsecond = (v.nanosecond // 1000 ).to_i32
234
- {% else % }
235
- microsecond = (v.nanosecond / 1000 ).to_i32
236
- {% end % }
228
+ microsecond = (v.nanosecond // 1000 ).to_i32
237
229
packet.write_blob UInt8 .slice(
238
230
v.year.to_i16,
239
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
240
- v.year.to_i16 // 256
241
- {% else % }
242
- v.year.to_i16 / 256
243
- {% end % },
231
+ v.year.to_i16 // 256 ,
244
232
v.month.to_i8, v.day.to_i8,
245
233
v.hour.to_i8, v.minute.to_i8, v.second.to_i8,
246
234
(microsecond & 0x000000FF ).to_u8,
@@ -252,41 +240,21 @@ abstract struct MySql::Type
252
240
253
241
def self.read (packet )
254
242
pkt = packet.read_byte!
255
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
256
- return ::Time .local(0 , 0 , 0 , location: MySql ::TIME_ZONE ) if pkt < 1
257
- {% else % }
258
- return ::Time .new(0 , 0 , 0 , location: MySql ::TIME_ZONE ) if pkt < 1
259
- {% end % }
243
+ return ::Time .local(0 , 0 , 0 , location: MySql ::TIME_ZONE ) if pkt < 1
260
244
year = packet.read_fixed_int(2 ).to_i32
261
245
month = packet.read_byte!.to_i32
262
246
day = packet.read_byte!.to_i32
263
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
264
- return ::Time .local(year, month, day, location: MySql ::TIME_ZONE ) if pkt < 6
265
- {% else % }
266
- return ::Time .new(year, month, day, location: MySql ::TIME_ZONE ) if pkt < 6
267
- {% end % }
247
+ return ::Time .local(year, month, day, location: MySql ::TIME_ZONE ) if pkt < 6
268
248
hour = packet.read_byte!.to_i32
269
249
minute = packet.read_byte!.to_i32
270
250
second = packet.read_byte!.to_i32
271
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
272
- return ::Time .local(year, month, day, hour, minute, second, location: MySql ::TIME_ZONE ) if pkt < 8
273
- {% else % }
274
- return ::Time .new(year, month, day, hour, minute, second, location: MySql ::TIME_ZONE ) if pkt < 8
275
- {% end % }
251
+ return ::Time .local(year, month, day, hour, minute, second, location: MySql ::TIME_ZONE ) if pkt < 8
276
252
ns = packet.read_int.to_i32 * 1000
277
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
278
- return ::Time .local(year, month, day, hour, minute, second, nanosecond: ns, location: MySql ::TIME_ZONE )
279
- {% else % }
280
- return ::Time .new(year, month, day, hour, minute, second, nanosecond: ns, location: MySql ::TIME_ZONE )
281
- {% end % }
253
+ return ::Time .local(year, month, day, hour, minute, second, nanosecond: ns, location: MySql ::TIME_ZONE )
282
254
end
283
255
284
256
def self.parse (str : ::String )
285
- {% if compare_versions(Crystal ::VERSION , " 0.28.0" ) >= 0 % }
286
- return ::Time .local(0 , 0 , 0 , location: MySql ::TIME_ZONE ) if str.starts_with?(" 0000-00-00" )
287
- {% else % }
288
- return ::Time .new(0 , 0 , 0 , location: MySql ::TIME_ZONE ) if str.starts_with?(" 0000-00-00" )
289
- {% end % }
257
+ return ::Time .local(0 , 0 , 0 , location: MySql ::TIME_ZONE ) if str.starts_with?(" 0000-00-00" )
290
258
begin
291
259
begin
292
260
::Time .parse(str, " %F %H:%M:%S.%N" , location: MySql ::TIME_ZONE )
0 commit comments