搜尋
問答 計算列日期值:利用變數和其他欄位進行日期偏移計算

0

我有一個專案管理表,其中包含1000個任務/記錄,每個任務/記錄都有一個動態的starting_dateending_date列。這些日期的值是透過取得一個靜態的項目「上線」日期(例如2022-10-01),然後減去每個記錄的task_offset_days值(例如-211) ,從而得到starting_date的值。結束日期透過一個days_to_complete列計算,該列具有例如60天的值,如果將其加到starting_date上,就得到了最終的ending_date

範例:上線日期= 2022-10-01,偏移量-211天,得到starting_date = '2022-03-04',再加上days_offset的值60,得到ending_date = 2022-05-03

這裡的問題是:

我想將這1000筆記錄複製到另一個表中,並在此過程中根據另一個上線日期更新starting_dateending_date的值。考慮到我要複製和編輯1000筆記錄,我該如何以最高效的方式做到這一點?

目前的複製查詢:

@live_date = '2022-10-01';   // 上线日期

INSERT INTO `new_task_table` (
    `property_id`,  // 唯一标识符,在原始表中不存在
    `status`,
    `task_desc`,
    `phase`,
    `workstream`,
    `task_level`,
    `task_owner_group`,
    `start_date`,   // = 上线日期 - 偏移量
    `end_date`,     // = 开始日期 + 完成天数
    `offset_days`,  // 例如 -211(注意:可以低于/高于零:-211或120)
    `days_to_complete`, // 例如 60
    `created_at`
)
SELECT 
    '31',
    `status`,
    `task_desc`,
    `phase`,
    `workstream`,
    `task_level`,
    `task_owner_group`,
    `start_date`,
    `end_date`,
    `offset_days`,
    `days_to_complete`,
    '2022-01-01 00:00:00'   // 查询执行的日期
FROM `old_task_table`;

Your Answer
提交

1 個答案
0

這可能比你想像的簡單。你只需將值傳遞給 SELECT

@live_date = '2022-10-01';   // 上线日期

INSERT INTO `new_task_table` (
    `property_id`,  // 唯一标识符,在原始表中不存在
    `status`,
    `task_desc`,
    `phase`,
    `workstream`,
    `task_level`,
    `task_owner_group`,
    `start_date`,   // = 上线日期 - 偏移量
    `end_date`,     // = 开始日期 + 完成天数
    `offset_days`,  // 例如 -211(注意:可以是负数或正数:-211 或 120)
    `days_to_complete`, // 例如 60
    `created_at`
)
SELECT 
    '31',
    `status`,
    `task_desc`,
    `phase`,
    `workstream`,
    `task_level`,
    `task_owner_group`,
    DATE_ADD(@live_date, INTERVAL offset_days DAY) AS start_date,
    DATE_ADD(@live_date,INTERVAL offset_days + days_to_complete DAY) AS end_date,
    `offset_days`,
    `days_to_complete`,
    '2022-01-01 00:00:00'   // 查询执行日期
FROM `old_task_table`;
2023-09-08 12:04:17

提交

Hot Tools

vc9-vc14(32+64位元)運行庫合集(連結在下方)

vc9-vc14(32+64位元)運行庫合集(連結在下方)

phpStudy安裝所需運行函式庫集合下載

VC9 32位

VC9 32位

VC9 32位元 phpstudy整合安裝環境運行庫

php程式設計師工具箱完整版

php程式設計師工具箱完整版

程式設計師工具箱 v1.0 php整合環境

VC11 32位

VC11 32位

VC11 32位元 phpstudy整合安裝環境運行庫

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用