in redash/query_runner/exasol.py [0:0]
def _exasol_type_mapper(val, data_type):
if val is None:
return None
elif data_type["type"] == "DECIMAL":
if data_type["scale"] == 0 and data_type["precision"] < 16:
return int(val)
elif data_type["scale"] == 0 and data_type["precision"] >= 16:
return val
else:
return float(val)
elif data_type["type"] == "DATE":
return datetime.date(int(val[0:4]), int(val[5:7]), int(val[8:10]))
elif data_type["type"] == "TIMESTAMP":
return datetime.datetime(
int(val[0:4]),
int(val[5:7]),
int(val[8:10]), # year, month, day
int(val[11:13]),
int(val[14:16]),
int(val[17:19]), # hour, minute, second
int(val[20:26].ljust(6, "0")) if len(val) > 20 else 0,
) # microseconds (if available)
else:
return val