我的表格中有一列日期(称为org_day)。 我尝试添加一个代表第二天的新列,即 day_after = org_day + day(或24小时)(对于org_day的所有行)
据我了解,SQL的DATE_ADD函数没有 在整个专栏中工作,因此尝试执行以下操作: DATE_ADD(org_day,INTERVAL 24小时)或 DATE_ADD(DATE org_day,INTERVAL 24小时) 不工作。 正常工作的示例如下所示: DATE_ADD(DATE'2019-12-22',INTERVAL 1天), 但是我想在整列上执行此操作, 不是固定的日期。 感谢任何帮助。
答案 0 :(得分:1)
要更新整个列,您需要在该列上进行所有设置。试试这个,希望它能解决您的问题...
UPDATE table_name SET column_name = DATE_ADD(var,interval);
答案 1 :(得分:1)
您可以尝试以下方法:
CREATE OR REPLACE TABLE
mydataset.mytable AS
SELECT
org_day,
DATE_ADD(org_day, INTERVAL 1 day) day_after
FROM
mydataset.mytable;
以上语句将通过添加新列来修改现有表,而不会删除现有数据。
答案 2 :(得分:1)
我建议使用一个视图:
create view v_t as
select t.*, date_add(org_day, interval 1 day) as day_after
from t;
如果您始终希望新列与现有列保持同步,则视图可确保数据一致。该值是查询数据时计算的。