需要在现有配置单元表中添加额外的日期列,以便它从系统中获取当天的当前日期
hive (hivejobs)>
select * from my_current_Table;
OK
name age
Aditya 2
Aditya 7
我想在这里添加一个日期列,这样我就可以在添加一个列后立即获得当天的当前系统日期。我认为解决方法是将两个表与另一个具有当前系统日期的表连接起来。
下面是我的代码和思考过程。
alter table my_current_Table add columns( todays_date current_date());
这给了我一个错误,我找不到真正的方法去做
请帮忙。
预期产量
hive (hivejobs)>
select * from my_current_Table;
OK
name age todays_date
Aditya 2 2019-02-08 13:21:50
Aditya 7 2019-02-08 13:21:50
2条答案
按热度按时间pqwbnv8z1#
不能在配置单元表中定义计算列。
如果要始终查询今天的日期,请使用
current_timestamp
选择中的函数:如果要添加列并存储插入记录的日期,请将列添加到表中并从自身重新加载,例如:
eqoofvh92#
下面是相同的步骤,
创建临时表
创建表my\u current\u table\u temp(name string,age int);
使用文件或现有表将数据插入my\u current\u table\u temp表:
姓名|年龄
再见| 2
再见| 7
创建一个包含最终数据的表:
创建表my\u current\u table(name string,age tinyint,todays\u date string);
从临时表中插入数据,并在此基础上添加默认值为当前日期和时间的列:
insert overwrite table my\u current\u table选择name,age,from\u unixtime(unix\u timestamp(),'dd/mm/yyyyy hh:mm')from my\u current\u table\u temp;