如何从两列中获取最新时间,例如我有两个列名 start_time_a
和 start_time_b
都存储值,如 2014-05-13 12:34 :34
但我需要使用 Python Django 从两列中获取最新时间。我是 django 查询的新手,请帮助我解决这个问题。
示例表:
+-----+-----------------------+-----------------------+
| id | start_time_a | start_time_b |
+-----+-----------------------+-----------------------+
| 1 | 2014-05-13 12:34:34 | 2014-05-13 12:41:34 |
| 2 | 2014-05-13 12:40:34 | 2014-05-13 12:40:40 |
| 3 | 2014-05-13 12:20:34 | 2014-05-13 12:46:34 |
+-----+-----------------------+-----------------------+
我想要这个输出
| 3 | 2014-05-13 12:20:34 | 2014-05-13 12:46:34 |
因为它有来自所有时间戳的最新 start_time_b
最佳答案
引用SQL you posted ,您可以将其放入 Django extra()
Queryset modifier :
qs = YourModel.objects.extra(select={
'max_time': '''
select * from t where (
start_time_a in (
select greatest(max(start_time_a), max(start_time_b)) from t
) or start_time_b in (
select greatest(max(start_time_a), max(start_time_b)) from t
)
)'''
})
# each YourModel object in the queryset will have an extra attribute, max_time
for obj in qs:
print obj.max_time
关于python - 如何从 Django 的两列中获取最新的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624736/