繁体   English   中英

RedShift - 使用时间戳列中的日期更新表

[英]RedShift - update table with date from a timestamp column

我在 redshift 中有一个名为adata的表,其中包含一个带有 integer 类型数据变量的列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);

您似乎想要更新表中的现有行 在这种情况下,您将使用UPDATE命令。

由于行将根据同一表中其他列的值进行更新,因此您可以简单地使用:

UPDATE adata SET rdate = timestamp 'epoch' + timestamp * interval '1 second'

其中timestamp是包含现有值的列。

(使用INSERT会添加额外的行,这可能不是您想要的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM