2013-10-30 290 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

相关问题