我将Django定义为DateTimeField:
class test(models.Model):
t = models.DateTimeField()
在pandas中,我的数据框为
a=DataFrame(date_range('2014-1-1','2014-1-2'))
type(a.ix[0,0])
显示:pandas.tslib.Timestamp
当我尝试通过以下方式插入数据时:
stmt="insert into dry_powder_test('t') values(?)"
cnx = sqlite3.connect(db_path)
cnx.executemany(stmt, a.to_records(index=False).tolist())
cnx.commit()
没有错误。但是
test.objects.get(pk=1).t
给我空洞的结果。虽然在db中我实际上看到了
(u'project_test', 't', 1388534400000000000L)
我该如何正确地做到这一点?
答案 0 :(得分:0)
你的django模型有一个字段t,类型为django.model.DateTimeField,你保存到数据库pandas.data_range,它从1970年开始被隐含转换为毫秒。
---编辑--- 你好,再次,
我已经解决了你的问题。我用django orm创建了有效的模型,所以:
[1]: a1 = test()
[2]: a1.t
[3]: a1.t = datetime.datetime(2012, 2, 26, 13, 0, 0, 775217)
然后我检查了DB:
$./manage.py dbshell
sqlite> select * from polls_test;
1|1388534400000000000
2|1388620800000000000
3|2012-02-26 13:00:00.775217