RedShift - 使用时间戳列中的日期更新 table
RedShift - update table with date from a timestamp column
我在 redshift 中有一个名为 adata
的 table,它包含一个带有整数类型数据变量的列 timestamp
。 timestamp
列将时间戳保存为纪元值。我添加了一个名为 rdate
的新列,其中包含日期变量类型。我正在尝试通过转换 timestamp
列将日期值插入 rdate
列。
什么在起作用;
select timestamp 'epoch' + timestamp * interval '1 second' AS rdate from adata;
这会很好地打印带有时间戳作为日期和时间的 rdate 列。
什么不起作用
insert into adata (rdate) select timestamp 'epoch' + timestamp * interval '1 second' AS rdate from adata;
我尝试使用更新语句:
update adata set rdate = (select timestamp 'epoch' + timestamp * interval '1 second' AS rdate from adata);
ts rdate
1611306839 need date here
1611469226 need date here
1611399334 need date here
1611373685 need date here
我试过的另一个选项:
update adata set rdate = (select (timestamp 'epoch' + timestamp * interval '1 second') AS rdate from adata);
您似乎想要更新table中的现有行。在这种情况下,您将使用 UPDATE
命令。
由于行将根据同一 table 中其他列的值进行更新,您可以简单地使用:
UPDATE adata SET rdate = timestamp 'epoch' + timestamp * interval '1 second'
其中 timestamp
是包含现有值的列。
(使用 INSERT
会添加额外的行,这可能不是您想要的。)
我在 redshift 中有一个名为 adata
的 table,它包含一个带有整数类型数据变量的列 timestamp
。 timestamp
列将时间戳保存为纪元值。我添加了一个名为 rdate
的新列,其中包含日期变量类型。我正在尝试通过转换 timestamp
列将日期值插入 rdate
列。
什么在起作用;
select timestamp 'epoch' + timestamp * interval '1 second' AS rdate from adata;
这会很好地打印带有时间戳作为日期和时间的 rdate 列。
什么不起作用
insert into adata (rdate) select timestamp 'epoch' + timestamp * interval '1 second' AS rdate from adata;
我尝试使用更新语句:
update adata set rdate = (select timestamp 'epoch' + timestamp * interval '1 second' AS rdate from adata);
ts rdate
1611306839 need date here
1611469226 need date here
1611399334 need date here
1611373685 need date here
我试过的另一个选项:
update adata set rdate = (select (timestamp 'epoch' + timestamp * interval '1 second') AS rdate from adata);
您似乎想要更新table中的现有行。在这种情况下,您将使用 UPDATE
命令。
由于行将根据同一 table 中其他列的值进行更新,您可以简单地使用:
UPDATE adata SET rdate = timestamp 'epoch' + timestamp * interval '1 second'
其中 timestamp
是包含现有值的列。
(使用 INSERT
会添加额外的行,这可能不是您想要的。)