diff --git a/app/services/firebird_service.py b/app/services/firebird_service.py index aeedc1c..79578b9 100644 --- a/app/services/firebird_service.py +++ b/app/services/firebird_service.py @@ -9,16 +9,20 @@ def _safe(v): if v is None: return None if isinstance(v, datetime.datetime): - return v.isoformat() + return v.strftime("%Y-%m-%dT%H:%M:%S") if isinstance(v, datetime.date): return v.isoformat() + if isinstance(v, datetime.time): + return v.strftime("%H:%M:%S") if isinstance(v, decimal.Decimal): return float(v) if isinstance(v, (bytes, bytearray, memoryview)): return f"" - if isinstance(v, (int, float, str, bool)): + if isinstance(v, (int, float, bool)): return v - return str(v) + # strings: strip any spaces around colons (Firebird sometimes returns "12: 47: 37") + s = str(v) + return re.sub(r'\s*:\s*', ':', s) if ':' in s else s class FirebirdService: