错误 - "SQLite DateTime类型只接受Python的datetime和date对象作为输入。"

9
我尝试声明一个包含日期时间的变量,代码如下:
ts1.departure_date = '2012-03-03 10:10:10'

但是我遇到了这个错误

StatementError: (exceptions.TypeError) SQLite DateTime type only accepts Python datetime and date objects as input. 

我想知道以datetime格式声明变量的正确方式是什么?谢谢提前。


1
你尝试过这样写吗:ts1.departure_date = datetime(2012,3,3,10,10,10) - Jon Clements
@Joe Clements:把那个写成答案,我会点赞。 - knitti
@JonClements 我按照您的建议尝试了导入datetime模块,但是出现了TypeError: 'module' object is not callable这个错误,您有什么想法吗?谢谢。 - wiko
@wiko: datetime.datetime(2012, 3, 3, 10, 10, 10) 然后。 - Martijn Pieters
3个回答

14

首先导入datetime类:

from datetime import datetime

然后创建一个datetime对象并使用它来设置你的属性:
ts1.departure_date = datetime(2012, 3, 3, 10, 10, 10)

0

在使用SQLAlchemy连接SQLite和Postgres时遇到的超级奇怪错误。

from datetime import datetime

....
#WORKS
 lending_operation = models.LendingOperation(

                device_id = device.device_id,
                start_using = datetime.now()
            )
        db.session.add(lending_operation)
        db.session.commit()

#DIDN'T WORK

lending_operation = models.LendingOperation(
                currency = "USD",
                device_id = device.device_id,
                start_using = datetime.now()
            )
        db.session.add(lending_operation)
        db.session.commit()

#MODEL: models.py
class LendingOperation(db.Model):
    .....
    start_using = db.Column(db.DateTime, default=datetime.now )
    .....
    currency = db.Column(db.DateTime)

Hope it helps, didn't find any info on the exception

3
你的模型将currency定义为DataTime类型。如果你尝试添加currency = 'USD',其中USD是一个字符串,它是行不通的,对吗? - l001d

0
    expiration_year  = int(form.expiration_date.data[:4])
    expiration_month =  int(form.expiration_date.data[5:7])
    expiration_date = int(form.expiration_date.data[8:10])
    expiration_date =datetime(expiration_year,expiration_month,expiration_date)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接