0

我试图在 pgsql 中插入一个日期时间

f'UPDATE userdata SET claimed = {fclaim} WHERE userid = {user.id}'

以下是 fclaim 变量的制作方法

   nextclaim = datetime.datetime.now() + datetime.timedelta(hours=24)
   
   fclaim = nextclaim + datetime.timedelta(hours=24)

当我尝试将 fclaim 插入 postgresql 时,出现以下错误

  File "/home/server/.local/lib/python3.6/site-packages/discord/ext/commands/core.py", line 83, in wrapped
    ret = await coro(*args, **kwargs)
  File "/home/server/Documents/blutonium/extensions/points.py", line 162, in daily
    isClaimed = blutapi.getclaimed(ctx.author)
  File "/home/server/Documents/blutonium/blutapi.py", line 445, in getclaimed
    db.run(sql)
  File "/home/server/.local/lib/python3.6/site-packages/pg8000/core.py", line 954, in run
    self._run_cursor.execute(sql, params, stream=stream)
  File "/home/server/.local/lib/python3.6/site-packages/pg8000/core.py", line 351, in execute
    self._c.execute_unnamed(self, operation, args)
  File "/home/server/.local/lib/python3.6/site-packages/pg8000/core.py", line 1262, in execute_unnamed
    args = make_args(vals)
  File "/home/server/.local/lib/python3.6/site-packages/pg8000/core.py", line 213, in make_args
    return tuple(vals[p] for p in placeholders)
  File "/home/server/.local/lib/python3.6/site-packages/pg8000/core.py", line 213, in <genexpr>
    return tuple(vals[p] for p in placeholders)
KeyError: '37' 

在 ubuntu 20.04 上使用 python 3.6.11

4

1 回答 1

0

docs之后,这是一个UPDATE使用 pg8000 进行操作的示例:

conn.run(
    "UPDATE userdata SET claimed = :fclaim WHERE userid = :user_id", fclaim=fclaim,
    user_id=user.id)
于 2021-03-06T11:02:01.797 回答