2013-10-30 344 views
1

這裏是新手的位。Python:將MySQL日期時間轉換爲日期時間格式

我有一個程序,它從MySQL數據庫中取得結果。 它挑選出Id和ship_date字段,查詢只搜索基於給定Id的返回記錄。 結果應該是2個或更多日期。 我的目標是格式化日期並比較它們之間的日期。 結果被放入單獨的列表,所以我得到兩個列表如下:

[(datetime.datetime(2012, 12, 28, 0, 0),), (datetime.datetime(2012, 12, 28, 0, 0),)] 

[(datetime.datetime(2012, 06, 15, 0, 0),), (datetime.datetime(2012, 08, 19, 0, 0),)] 

例如。

但是,當我試圖把整個名單爲可讀的格式有一段代碼,我發現:

ship_date = [dt.strftime("%Y-%m-%d") for dt in ship_date] 

我總是得到一個錯誤,沒有屬性的strftime。 我已經嘗試將它們轉換爲字符串,然後使用strftime,但我得到的錯誤是str沒有屬性strftime。 我完全損失。

順便說一句,我已經進口日期時間

沒有人有任何的方法,我可以把這些列表(2人)成可讀的格式,如

2012-12-28, 2012-12-28 

感謝

+0

理想的情況下,是什麼原MySQL的日期時間看起來像一個字符串格式? –

回答

1

給出的列表中包含的元組與日期時間,而不僅僅是日期時間。所以這些項目應該解壓。

>>> ship_dates = [(datetime.datetime(2012, 12, 28, 0, 0),), (datetime.datetime(2012, 12, 28, 0, 0),)] 
>>> [dt.strftime("%Y-%m-%d") for dt in ship_dates] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'tuple' object has no attribute 'strftime' 

>>> [dt.strftime("%Y-%m-%d") for (dt,) in ship_dates] 
['2012-12-28', '2012-12-28'] 

也可以忽略(..)

>>> [dt.strftime("%Y-%m-%d") for dt, in ship_dates] 
['2012-12-28', '2012-12-28'] 
+0

你改變了你可愛的化身:(來吧加入我們的SO蟒蛇聊天,如果你有時間,我們可以有一個很好的聊天:) –

+0

我欠你一杯飲料,這沒有竅門! – Xtremesupremacy3

相關問題