hive中时间操作(二)

转:https://blog.csdn.net/qq646748739/article/details/77997276

--Hive中日期函数总结:
--1.时间戳函数
--日期转时间戳:从1970-01-01 00:00:00 UTC到指定时间的秒数
select unix_timestamp(); --获得当前时区的UNIX时间戳
select unix_timestamp(‘2017-09-15 14:23:00‘); 
select unix_timestamp(‘2017-09-15 14:23:00‘,‘yyyy-MM-dd HH:mm:ss‘);
select unix_timestamp(‘20170915 14:23:00‘,‘yyyyMMdd HH:mm:ss‘);

--时间戳转日期
select from_unixtime(1505456567); 
select from_unixtime(1505456567,‘yyyyMMdd‘); 
select from_unixtime(1505456567,‘yyyy-MM-dd HH:mm:ss‘); 
select from_unixtime(unix_timestamp(),‘yyyy-MM-dd HH:mm:ss‘); --获取系统当前时间

--2.获取当前日期: current_date
hive> select current_date from dual
2017-09-15

--3.日期时间转日期:to_date(string timestamp) 
hive> select to_date(‘2017-09-15 11:12:00‘) from dual;
2017-09-15

--3.获取日期中的年/月/日/时/分/秒/周
with dtime as(select from_unixtime(unix_timestamp(),‘yyyy-MM-dd HH:mm:ss‘) as dt)
select year(dt),month(dt),day(dt),hour(dt),minute(dt),second(dt),weekofyear(dt)
  from dtime
  
--4.计算两个日期之间的天数: datediff
hive> select datediff(‘2017-09-15‘,‘2017-09-01‘) from dual;  
14

--5.日期增加和减少: date_add/date_sub(string startdate,int days)
hive> select date_add(‘2017-09-15‘,1) from dual;    
2017-09-16
hive> select date_sub(‘2017-09-15‘,1) from dual;    
2017-09-14

--其他日期函数
查询当前系统时间(包括毫秒数): current_timestamp;  
查询当月第几天: dayofmonth(current_date);
月末: last_day(current_date)
当月第1天: date_sub(current_date,dayofmonth(current_date)-1)

下个月第1天: add_months(date_sub(current_date,dayofmonth(current_date)-1),1)

原文地址:https://www.cnblogs.com/zuizui1204/p/9144137.html

时间: 2024-10-21 18:11:22

hive中时间操作(二)的相关文章

Hive中JOIN操作

1. 只支持相等JOIN. 2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业. 3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后. SELECT /*+ STREAMTABLE(a) */ a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1)//暗示 4. JOIN在WHERE子句前进行处理. SELECT a.val, b.val FRO

python中时间操作总结

1.获取当前系统时间 datenow = datetime.datetime.now() 2.将datetime格式的时间转换成str datenow = datenow.strftime("%Y-%m-%d") 或datenow = datetime.datetime.strftime(datenow, "%Y-%m-%d") 3.将str格式的时间转换成datetime格式 datenow = datetime.datetime.strptime(datenow

Hive 时间操作

Hive 时间转换 UNIX时间戳概念:因为UNIX时间戳只是一个秒数,一个UNIX时间戳在不同时区看来,时间是不同的.如UNIX时间戳0,在0时区看来是1970-01-01 00:00:00,在东八区看来是1970-01-01 08:00:00. hive常用时间操作示例 -- 返回UNIX时间戳代表的(格林威治零时区)时间,默认格式如下. select from_unixtime(1); 1970-01-01 00:00:01 select from_unixtime(1 ,'yyyyMMd

【大数据学习--hive】hive中执行select * from tablename 报错问题。

在虚拟机中搭建hive之后,创建了表,在执行select * from tablename的时候报错,具体报错信息如下: hive> select * from hive_01; FAILED: SemanticException Unable to determine if hdfs://master:9000/user/hive/warehouse/hive_1.db/hive_01 is encrypted: java.lang.IllegalArgumentException: java

Java学习(十一):Java中的常用时间操作

java中的时间操作不外乎这四种情况:获取当前时间,获取某个时间的某种格式,设置时间和时间的运算. 1.获取当前时间 有两种方式可以获得,第一种,使用java.util.Date类. Date date = new Date(); date.getTime(); 还有一种方式,使用System.currentTimeMillis(); 这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数. 2.获取某

前端 之 jQuery: 属性操作; 操作input中的value; 文档操作***(二)

属性操作 操作input中的value 文档操作*** ... ... ... ... ... 一, 属性操作 jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作 html属性操作:是对html文档中的属性进行读取,设置和移除操作. 比如: attr() 设置属性值或者 返回被选元素的属性值 //获取值:attr()设置一个属性值的时候 只是获取值 var id = $('div').attr('id') console.log(id) var cla

SQOOP增量抽取时,在HIVE中实现类似Oracle的merge操作

数据仓库建设中的数据抽取环节,常常需要增量抽取业务库数据.但业务库数据不是一层不变的,会根据时间发生状态变更,那么就需要同步更新变化数据到HIVE中.过去在Oracle上做数据仓库时,可以使用merge的方法合并新老数据.但hive中没有该功能,本文旨在通过sqoop抽取后,自动实现数据合并. 表设计 将抽取表分为三张, 一张_arc表,保存每日合并后的快照,根据pt字段分区 一张_inc表,用于保存当日抽取的增量数据,根据pt字段分区 一张不带后缀的表,指向最终表给后续ETL任务使用. 步骤

Hive中order by,sort by,distribute by,cluster by的区别

一:order by order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间.关于order by的详细介绍请参考这篇文章:Hive Order by操作. 二:sort by sort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1,则sort by只会保证每个reducer的输出有

hive中udf读写hbase

在大数据开发过程中经常会遇到,将hive中处理后的结果写入hbase中,每次都要写java程序会非常浪费时间,我们就想了一个办法 ,用hive的udf来实现. 只需要调用同一个udf,将表名字段名以及每一个字段的值作为udf的参数,就可以实现写hbase了. 这样大大的节省了开发时间,提升了开发效率. 大家可以按照这种思路写自己需要的功能.这里只简单的列举几个供大家参考,具体操作如下: 一.依赖的jar包 commons-codec-1.7.jar commons-collections-3.2