我正在从SQL数据库表中选择高山滑雪比赛时间的数据,以便在python中使用SQLalchemy Core进行分析。我的表中的一个列timetot结果表示存储为字符串的计时器值。时间字符串字符串的示例是“1:53.54”(分钟:秒。毫秒),我想将其转换为浮点数113.54(秒)。
我目前正在使用这段非常繁琐的代码将此计时器字符串转换为数字:
from sqlalchemy import Select, cast, func, Numeric
stmt = select([cast(func.substring(result.c.timetot, 1,1),
Numeric)*60 + cast(func.substring(result.c.timetot, 3,9),
Numeric(6,2))])
我有两个问题:
1.有没有人有更好的(即更紧凑)方式进行这种转换?
2.我在表中还有两列用于执行相同的转换,是否可以使用SQLalchemy以某种方式定义函数以避免重复代码?
我正在使用SQLAlchemy版本1.1.13和Python 3.6.3
谢谢!