我正在尝试对查询中的列执行一些操作。我想将timedelta列除以60.不幸的是它给出了奇怪的结果。
在我的查询中,我返回两个日期时间,这两个日期时间之间的时间值,以及这两个日期时间之间的时间值除以2.输出示例:
(datetime.datetime(2013, 1, 1, 0, 0, 8),
datetime.datetime(2013, 1, 1, 0, 7, 32),
datetime.timedelta(0, 444),
Decimal('362.0000'))
然而,timedelta 444除以2不等于362.0000。但这就是sqlalchemy给我的东西。无论如何都能得到正确的结果吗?
在查询中执行此操作非常重要,因为我也尝试将上面的内容用作子查询并对结果取平均值,但我也得到了奇怪的平均值。
这是我的问题:
sub = session.query(
merge.c.time_received,
merge.c.time_sent,
func.timediff(
merge.c.time_sent,
merge.c.time_received
),
func.timediff(
merge.c.time_sent,
merge.c.time_received
) / 2.0
). \
filter(
merge.c.time_received != None,
merge.c.time_sent != None,
). \
limit(1)