在我的 Postgresql 資料庫中,我試圖根據該表和另一個表中的資料更新一個表中的列。在我的用戶表中,我試圖通過將單獨日期列中的資料添加到我的計劃表中以月為單位的整數列來更新 new_date 列(例如 new_date = 2022-02-27 5 個月);如果這是一個表,我可以添加日期 間隔 '1 個月' * 月,例如 -UPDATE users SET new_date = date interval '1 month' * months; 但是,我無法弄清楚如何使用用戶和計劃之間的連接表進行類似的更新,帶有子查詢或公用表運算式。
users 表(縮寫):new_date根據日期 月份更新
| 日期 | 新日期 |
|---|---|
| 2022-05-21 | 無效的 |
| 2022-04-15 | 無效的 |
計劃表(縮寫)
| 月 |
|---|
| 5 |
| 1 |
加入表:SELECT users.date、plans.months、users.new_date FROM users 加入計劃 users.plan_id = plans.id
| 日期 | 月 | 新日期 |
|---|---|---|
| 2022-05-21 | 5 | |
| 2022-04-15 | 1 |
結果:
更新用戶表:
| 日期 | 新日期 |
|---|---|
| 2022-05-21 | 2022-10-21 |
| 2022-04-15 | 2022-05-15 |
uj5u.com熱心網友回復:
您可以連接表并在陳述句中將列months的值乘以:INTERVAL '1 month'UPDATE
UPDATE users AS u
SET new_date = u.date INTERVAL '1 month' * p.months
FROM plans AS p
WHERE p.id = u.plan_id;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484626.html
標籤:sql PostgreSQL 日期 sql更新 日期算术
上一篇:影像處理,獲得純邊緣
下一篇:SQLAlchemy不插入默認值
