我有这样的表结构
id start_date during
1 2018-01-01 2
2 2018-01-02 3
然后我想使用查询添加一个名为end_date
的新列
SELECT 'start_date' + INTERVAL ('during')day as 'end_date'
然后结果变为end_date
end_date
2018-01-03
2018-01-05
我想在名为end_date
的表中添加一个新列,然后再通过查询插入数据。在表格中创建新列后,我在下面的查询中插入了
INSERT INTO table_name(end_date)
SELECT 'start_date' + INTERVAL ('during')day
但是桌子会变成这样
id start_date during end_date
1 2018-01-01 2 null
2 2018-01-02 3 null
3 null null 2018-01-03
4 null null 2018-01-05
答案 0 :(得分:1)
首先,您需要在表中添加一个新列:
ALTER TABLE `table_name`.`new_table`
ADD COLUMN `end_date` DATE NULL AFTER `during`;
然后您可以应用插入内容:
UPDATE table_name SET end_date = start_date + INTERVAL(during) DAY;
但是,如果始终从start_date
和during
定义期间,则可以创建一个虚拟列:
ALTER TABLE `table_name`.`new_table`
ADD COLUMN `end_date` `end_date` DATE GENERATED ALWAYS AS (
start_date + INTERVAL(during) DAY) VIRTUAL ;