我使用cx_Oracle对Oracle数据库进行了查询。查询结果如下(datetime.datetime(2010, 11, 25, 14, 30, 47),)
我通过使用以下代码得到这个:
#!/usr/bin/python
import obi
from datetime import datetime
conn = obi.connect_obi()
query = obi.run_query(conn, "SELECT column FROM table_name")
for i in query:
print i
我想做的是从结果中提取时间、日期等。
我尝试过使用各种datetime方法,但我不知道如何访问返回列表中的各个元素。根据我的尝试,我会得到关于它是元组、列表等的各种错误。我在谷歌上看了一些例子,我可以让它们正常工作——我需要做些什么才能成功访问这种日期类型的时间/日期?
谢谢!Jack
x = (datetime.datetime(2010, 11, 25, 14, 30, 47),)
是元组。
dt = x[0]
是第一个元素,它是您的日期时间。
dt.year
是日期时间的年份。等等
返回的值(datetime.datetime(2010, 11, 25, 14, 30, 47),)
实际上是一个元组。请注意,它被括在括号中,(最重要的)它在日期后面有一个逗号。就像两个表达式之间的逗号在成对元组(如1, 2
)中转换它们一样,某个表达式之后的逗号只转换一个元素的元组中的值。关于它的更多信息,请参阅Python教程的这一部分(这里更具体)。
一个例子:
>>> (datetime.datetime(2010, 11, 25, 14, 30, 47),)
(datetime.datetime(2010, 11, 25, 14, 30, 47),)
>>> t = (datetime.datetime(2010, 11, 25, 14, 30, 47),)
要获取日期,只需获取元组的第一个元素
>>> date = t[0]
>>> date
datetime.datetime(2010, 11, 25, 14, 30, 47)
>>> date.year
2010
>>> date.month
11