我正在寻找将从mysql返回的行中搜索最大时间值的脚本。 Mysql返回行如:
(123, 'new', datetime.datetime(2013, 1, 2, 16, 6, 21))
(122, 'old', datetime.datetime(2012, 12, 3, 18, 08, 36))
(125, 'new', datetime.datetime(2012, 12, 13, 20, 18, 16))
我试过:
value = 0
for row in rows:
if row[2] > value:
value = row
print value
如果我们打印将显示那样的行[2]值
for row in rows:
print row[2]
output: 2013-01-02 16:06:21
2012-12-03 18:08:36
2013-12-13 20:18:16
答案 0 :(得分:2)
Anders Johansson 整齐地回答了您的问题。
但是,您也可以通过简单地仅请求该行数据来避免在Python中执行此操作。一个SQL语句,如:
SELECT DateTime FROM MyTable
ORDER BY CASE WHEN Status IS 'new' THEN 1 ELSE 0 END DESC, DateTime DESC LIMIT 1;
将实现您正在尝试的功能,并且只为您提供一个数据点。
SELECT mydate FROM MyTable
WHERE type=4
ORDER BY FIELD(status, 'new', 'waited', 'old'), mydate DESC
LIMIT 1;
答案 1 :(得分:1)
您可以简单地使用:
print max(x[2] for x in rows)