使用另一个列值更新 sql db 表列
Posted
技术标签:
【中文标题】使用另一个列值更新 sql db 表列【英文标题】:Update sql db table columns using another column value 【发布时间】: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 不匹配 我认为主要问题是在更新一列时访问另一列字符串值 【参考方案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 放在哪里 ***.com/questions/151026/… 好伙伴。非常感谢!祝你有美好的一天以上是关于使用另一个列值更新 sql db 表列的主要内容,如果未能解决你的问题,请参考以下文章
WordPress 和 SQL - 如果列值不存在,则从另一个表更新和插入