错误 'str' 对象在 asyncpg 中没有属性 'toordinal'
Error 'str' object has no attribute 'toordinal' in asyncpg
我的查询给出了 st运行ge 结果所以我调试了一下,我将我的 String
、日期对象更改为 sqlalchemy Date
所以它引发了这个错误
asyncpg.exceptions.DataError: invalid input for query argument : '2020-03-11'
('str' object has no attribute 'toordinal')
这是我的 sqlalchemyTable
db = sqlalchemy.Table(
"db",
metadata,
sqlalchemy.Column("date", Date),
sqlalchemy.Column("data", JSONB),
)
我如何插入值:
query = db.insert().values(
date=datetime.strptime(key,"%d/%m/%Y").strftime("%Y-%m-%d"),
data=value,
)
try:
await database.execute(query)
except UniqueViolationError:
pass
为什么我将类型 String 更改为 Date,因为当我 运行 查询像
query = f"""SELECT * FROM db WHERE date BETWEEN SYMMETRIC '{start_at}' AND '{end_at}'"""
return await database.execute(query)
它只返回一行和一列,如 2020-03-11
我会说你的问题在这里:
date=datetime.strptime(key,"%d/%m/%Y").strftime("%Y-%m-%d"),
您正在将字符串传递到日期字段。 SQLAlchmey 正在寻找要传入的日期对象,因此出现“('str' 对象没有属性 'toordinal')”错误。 toordinal 是日期对象的属性。删除 .strftime("%Y-%m-%d")
它应该可以工作。
我的查询给出了 st运行ge 结果所以我调试了一下,我将我的 String
、日期对象更改为 sqlalchemy Date
所以它引发了这个错误
asyncpg.exceptions.DataError: invalid input for query argument : '2020-03-11'
('str' object has no attribute 'toordinal')
这是我的 sqlalchemyTable
db = sqlalchemy.Table(
"db",
metadata,
sqlalchemy.Column("date", Date),
sqlalchemy.Column("data", JSONB),
)
我如何插入值:
query = db.insert().values(
date=datetime.strptime(key,"%d/%m/%Y").strftime("%Y-%m-%d"),
data=value,
)
try:
await database.execute(query)
except UniqueViolationError:
pass
为什么我将类型 String 更改为 Date,因为当我 运行 查询像
query = f"""SELECT * FROM db WHERE date BETWEEN SYMMETRIC '{start_at}' AND '{end_at}'"""
return await database.execute(query)
它只返回一行和一列,如 2020-03-11
我会说你的问题在这里:
date=datetime.strptime(key,"%d/%m/%Y").strftime("%Y-%m-%d"),
您正在将字符串传递到日期字段。 SQLAlchmey 正在寻找要传入的日期对象,因此出现“('str' 对象没有属性 'toordinal')”错误。 toordinal 是日期对象的属性。删除 .strftime("%Y-%m-%d")
它应该可以工作。