我是新来的hadoop。我在日期间隔管理方面有些问题。在postgresql中,我可以得到给定日期前的“6天”:
select max(datejour) + INTERVAL '-6 day' as maxdate from table
e、 g:如果max(datejour)=2015-08-22==>我的查询返回2015-08-15有人能帮我在Hive里怎么做吗?谢谢。
jucafojl1#
您可以使用date\u子函数来获取您的需求。查询可能如下所示(在您的情况下):
select DATE_SUB(from_unixtime(unix_timestamp(cast(MAX(t1.max_date) AS string) ,'yyyy-MM-dd'), 'yyyy-MM-dd'), 6) from (select MAX(datejour) as max_date from table) t1 group by t1.max_date;
gdx19jrr2#
您可以使用配置单元间隔来实现这一点。从表中选择(max(datejour)-interval“6”day)作为maxdate以上查询应返回2015-08-15你可以找到更多细节-https://cwiki.apache.org/confluence/display/hive/languagemanual+types
hvvq6cgz3#
因为在配置单元中不可能使用update命令更新记录,并且不建议通过alter命令添加列,因为您必须通过同一个表在其中插入值。
create external table test( fields1 string, field2 string) create external table test( fields1 string, field2 string, h01 string ) Insert overwrite table table2 select fields1, field2, case when fields1 = '' then 'OK' else 'KO' end as h01 from table1 where your_condition;
5hcedyr04#
您可以使用配置单元日期内置函数来实现这一点
select date_sub('2015-08-22', 6) from table
以上查询应返回 2015-08-15 您可以在此处找到更多配置单元内置功能:https://cwiki.apache.org/confluence/display/hive/languagemanual+udf#languagemanualudf-日期函数希望他的帮助
2015-08-15
4条答案
按热度按时间jucafojl1#
您可以使用date\u子函数来获取您的需求。查询可能如下所示(在您的情况下):
gdx19jrr2#
您可以使用配置单元间隔来实现这一点。
从表中选择(max(datejour)-interval“6”day)作为maxdate
以上查询应返回2015-08-15
你可以找到更多细节-https://cwiki.apache.org/confluence/display/hive/languagemanual+types
hvvq6cgz3#
因为在配置单元中不可能使用update命令更新记录,并且不建议通过alter命令添加列,因为您必须通过同一个表在其中插入值。
5hcedyr04#
您可以使用配置单元日期内置函数来实现这一点
以上查询应返回
2015-08-15
您可以在此处找到更多配置单元内置功能:https://cwiki.apache.org/confluence/display/hive/languagemanual+udf#languagemanualudf-日期函数希望他的帮助