簡體   English   中英

找到最大的時間價值

[英]Find the largest value of time

我正在尋找將從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

如果我們打印row [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

安德斯·約翰遜(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;

SQLFiddle

您可以簡單地使用:

print max(x[2] for x in rows)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM