【问题标题】:Update sql db table columns using another column value使用另一个列值更新 sql db 表列
【发布时间】:2022-01-18 01:02:12
【问题描述】:

我有我的病人的这个地址表,其中一个列的整数是自从我最后一次见到病人以来的天数。 我需要使用当前日期(这不是问题)和来自同一个 TABLE 的另一个列值来更新它。

我希望我可以这样做:

      c.execute("""UPDATE addresses SET
      days_since_last_appointment = :day""",
      {
      'day': (datetime.now()-       last_appointment_day)
       })

我正在使用 Python 3.9 和 sqlite3

有什么想法吗?

【问题讨论】:

  • 运行代码时会发生什么?
  • ValueError: 时间数据 '.!entry4' 与格式 '%d%m%Y 不匹配
  • 我认为主要问题是在更新一列时访问另一列字符串值

标签: python database sqlite


【解决方案1】:

您不能像引用 Python 变量一样引用表列。

您可以在 SQL 查询本身中进行算术运算:

c.execute("""UPDATE addresses
SET days_since_last_appointment = julianday('now') - julianday(last_appointment_day)""")

Difference between 2 dates in SQLite

【讨论】:

  • 谢谢,这似乎可以工作了,我现在收到一个数据库被锁定的错误,只是在网上看到我需要增加超时但不知道怎么做。把 OPTIONS 放在哪里
  • 好伙伴。非常感谢!祝你有美好的一天
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
相关资源
最近更新 更多