sql - 我想在我现有的配置单元表中添加一个额外的列,以便我可以获得当天的当前时间戳

标签 sql hadoop hive timestamp hiveddl

需要在我现有的配置单元表中添加额外的日期列,以便它选择 当天系统的当前日期

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

最佳答案

您不能在 Hive 表中定义计算列。

如果你想一直查询今天的日期,在select中使用current_timestamp函数:

select t.*, 
       date_format(current_timestamp,'yyyyMMdd HH:mm:ss') as todays_date 
  from my_current_Table t;

如果要添加列并存储插入记录的日期,请将列添加到表中并从自身重新加载,例如:

alter table my_current_Table  add columns(load_date string);

insert overwrite table my_current_Table 
select t.*, 
           date_format(current_timestamp,'yyyyMMdd HH:mm:ss') as load_date
      from my_current_Table t;

关于sql - 我想在我现有的配置单元表中添加一个额外的列,以便我可以获得当天的当前时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54600417/

相关文章:

mysql - 根据先前的选择结果优化选择行

hadoop - 当我给出位置时,在哪里可以找到配置单元数据库的位置?

hadoop - 如何优雅地停止namenode?

mysql - SQL 拆分逗号分隔行

hadoop - 在配置单元中处理换行符

mysql - 在加入冗余和得到

sql - 查询结果组织

sql - 选择不在另一个表中的行,SQL Server 查询

hadoop - 如何使用 Spark 编写 avro 文件?

hive - 使用 hive : no data available 创建分区外部表