一个有关python时间类的问题
我想在SQLite插入一条数据,里面包含一个datetime类型的数据。
table类如下:
python">class Task(db.Model): id = db.Column(db.Integer, primary_key=True)
finish_time = db.Column(db.Datetime, nullable=True)
task_name = db.Column(db.String(20), nullable=False)
remarks = db.Column(db.String(30), nullable=True)
task_status = db.Column(db.Boolean, default=False)
插入字段前,想先处理下时间,用的是datetime模块下的time类
from datetime import timedef time_ex(hh, mm, ss):
time_task = time(hour=hh, minute=mm, second=ss, microsecond=123456).isoformat(timespec='minutes')
return time_task
插入数据时候:
tasks = [ {'finish_time': time_ex(int('08'), int('00'), int('00')), 'task_name': 'task a', 'remarks': 'Dr.See',
'task_status': 'False'},
{'finish_time': time_ex(int('09'), int('00'), int('00')), 'task_name': 'task b', 'remarks': 'Dr.See',
'task_status': 'False'},
]
for t in tasks:
task = Task(finish_time=t['finish_time'], task_name=t['task_name'], remarks=t['remarks'],
task_status=t['task_status'])
db.session.add(task)
db.session.commit()
然后就开始报错了:
sqlalchemy.exc.StatementError: (builtins.TypeError) SQLite DateTime type only accepts Python datetime and date objects as input.
我试过将数据库中db.datetime改成db.time:
sqlalchemy.exc.StatementError: (builtins.TypeError) SQLite Time type only accepts Python time objects as input.
请问是哪里出了问题。。我对时间模块真的有点一筹莫展。。
我发现isoformat输出的是str类型,于是我去掉了,现在还是报错,我发现插入值变成了这个:
'finish_time': datetime.time(8, 0),
大佬们帮帮忙。。新手在这里谢过。。
回答:
需要传入一个datetime或者date的地方,你传入一个time
以上是 一个有关python时间类的问题 的全部内容, 来源链接: utcz.com/a/159060.html