HIVE中用到的日期函数总结

  1. hive获取当前时间
>select current_date from dual;  -- 2019-03-15
>select current_timestamp from dual; --2019-03-15 15:47:25
  • hive 查询当月第几天
>select dayofmonth(current_date) dual; 
>15 
  • hive 查询当前日期所在月月末
>select last_day(current_date) dual;
>2019-03-31
  • hive 查询 当月第一天日期
>select date_sub(current_date,dayofmonth(current_date)-1) dual;
>2019-03-01
  • hive 查询 下个月第一天日期
>select add_months(date_sub(current_date,dayofmonth(current_date)-1),1) dual;
>2019-04-01
  1. impala中 获取当前时间
>select from_unixtime(unix_timestamp())
>2019-03-15 15:45:56    --通过获取时间戳的形式来获取时间,然后通过函数FROM_UNIXTIME 转化为日期时间格式
  • impala获取之前两天的日期
>select regexp_replace(to_date(date_sub(from_unixtime(unix_timestamp()),2)),'-','')
>20190313 --返回的是string类型的
  • impala获取当前日期所在月
>select substr(regexp_replace(to_date(from_unixtime(unix_timestamp())),'-',''),1,6)
>201903 --获取年份类似,截取日期前四位 substr(date,1,4)
  1. hive常用的日期函数

1 hive日期增加函数 date_add (例如获取days天之后的日期 )

date_add(string startdate, days)

>select date_add('2019-03-15',1) from  dual;
>2019-03-16 00:00:00    --返回 TIMESTAMP型 开始日期startdate增加days天后的日期日期

在这里插入图片描述
2 hive日期减少函数 date_sub (获取之前days天的日期)

date_sub (string startdate,days)

>select date_sub('2019-03-15',3) from  dual;
>2019-03-12 00:00:00    --返回 TIMESTAMP型 开始日期startdate减少days天后的日期日期

3 hive日期转年函数 year(string date)

>select year('2019-03-15 16:03:01') from dual;
>2019  --返回 int型的日期值

4 hive日期转月函数 month(string date)

>select month('2019-03-15 16:03:01') from dual;
>3 --返回值int型,日期中的月份

5 hive日期转天函数 day(string date)

>select day('2019-03-15 16:03:01') from dual;
>15 --返回值int型,日期所在天

6 hive日期转周函数 weekofyear(string date)

>select weekofyear('2019-03-15 16:03:01') from dual;
>11 --返回值int型,日期所在周

7 hive日期比较函数 datediff(string enddate,string startdate)

>select datediff('2018-12-08','2019-03-15')from dual;
>-97 --返回值int型,结束日期减去开始日期的天数

8 hive日期时间转日期函数 to_date(string timestamp)

>select to_date('2019-03-15 17:17:48') from dual;
>2019-03-15 --返回string型的日期

你可能感兴趣的:(运维)