(仅记录平时工作有用到的)
1、重命名表
alter table table_name rename to new_table_name;
2、修改表字段
alter table table_name change a1 a2 string comment ‘修改后的字段名为a2’ alter a3;
将列名a1修改为a2,数据类型为STRING并添加注释,最后将这一列放在col3后面。
3、新增列
alter table table_name add columns ( a1 string comment ‘这是新增的字段a1’);
4、更新列
alter table table_name replace columns ( a1 int a2 bigint , new_a1 string new_a2 string );
查询删除a1,a2,并使用new_a1,new_a2替换列。
5、新增分区
alter table table_name if not exists add partition (p_date = ‘2019-10-10’);
6、删除分区
alter table table_name drop if exists partition (p_date = ‘2019-10-10’);
7、时间处理函数
日期增加函数: date_add (string startdate, int days)
日期减少函数: date_sub (string startdate, int days)
日期相减: datediff(‘2015-04-09’, ‘2015-04-01’); --(左减右)
Hive中计算两个日期之间的月份差
举例如下:
select floor(months_between(‘2018-07-01’,‘2018-02-04’)) from default.dual
返回值为: 4
注意:
1.日期格式为: yyyy-mm-dd;
2.如果日期格式为: yyyymmdd,则需要使用转换为yyyy-mm-dd
转换函数为:from_unixtime(unix_timestamp(20191010,'yyyymmdd'),'yyyy-mm-dd');
3.floor是取整函数。