我试图将时间插入数据库,但是当我打印插入的时间时,它不正确。我在将时间变量插入数据库之前打印了它,它是“12:01:09.149059”。我用的时候效果很好strftime但我换了,因为时间已经到了。
from datetime import datetime
time = str(datetime.now().time())
cur.execute("insert into apple values (?,?,?)",(price,time,date))
con.commit()
#prints:
>>>('132.75', "<method 'time' of 'datetime.datetime' objects>", 'Apr 27, 2015')
sqlite3
模块已经提供了适配器datetime.datetime
对象。你可以通过datetime.datetime
, datetime.date
对象原样:
>>> import sqlite3
>>> from datetime import datetime, timezone
>>> db = sqlite3.connect(':memory:')
>>> db.execute('select ?', (datetime.now(timezone.utc),)).fetchone()
('2015-04-27 20:22:26.951841+00:00',)
你可以如有必要,定义您自己的适配器 https://docs.python.org/3/library/sqlite3.html#registering-an-adapter-callable例如,通过datetime.time
对象:
>>> from datetime import time as datetime_time
>>> def adapt_time(t):
... return str(t)
...
>>> sqlite3.register_adapter(datetime_time, adapt_time)
>>> db = sqlite3.connect(':memory:')
>>> db.execute('select ?', (datetime.now(timezone.utc).time(),)).fetchone()
('20:24:00.867221',)
将日期和时间存储在一起(只需通过datetime
对象没有any转换)。使用 UTC 时间或感知日期时间对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)