我从PostgreSQL获取了一个记录,其类型为timestamp without time zone
我正在使用psycopg2
如果我使用datetime
,我可能会获得timestamp with time zone
个对象。但是,目前情况并非如此。
http://initd.org/psycopg/docs/usage.html#time-zones-handling
我意识到我正在获得浮动类型。
我怎么能想从给定的浮点数中得到价值?
Jan 07, 2010
16:38:49
connection.cursor.execute(sql, data)
records = connection.cursor.fetchall()
# In PostgreSQL, type is "timestamp without time zone"
# <type 'float'>
print type(record['_start_timestamp'])
# 1.28946608161e+12
print record['_start_timestamp']
# TypeError: argument must be 9-item sequence, not float
print time.strftime("%a, %d %b %Y %H:%M:%S +0000", record['_start_timestamp'])
答案 0 :(得分:3)
您获得的浮点值似乎是从纪元开始的毫秒数。所以这似乎给了你想要的东西:
#!/usr/bin/python
from datetime import datetime
import time
your_time = 1.28946608161e+12
print time.strftime("%a, %d %b %Y %H:%M:%S +0000",
datetime.fromtimestamp(your_time/1000).timetuple()
)
答案 1 :(得分:0)
更新新人。截至至少psycopg2 2.7.1,&#34;时间戳没有时区&#34;返回日期时间。
所以your_time.strftime("%a, %d %b %Y %H:%M:%S +0000")
现在就可以了。