赞
踩
- -- 1、hive取得当前日期时间:
-
- -- 1.1) 取得当前日期:
- select current_date();
-
- -- 1.2) 取得当前日期时间:
- select current_timestamp();
-
- -- 1.3) hive取得当前时间戳:
- select unix_timestamp();
-
- -- 1.4) 时间戳转日期:
- select from_unixtime(1517725479,'yyyy-MM-dd HH:dd:ss');
-
- -- 1.5) 日期转unix时间戳:
- select to_nuix_timestamp('2017-01-01 12:12:12','yyyy-MM-dd HH:dd:ss');
-
- -- 1.6) hive取得当前时间:
- select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:dd:ss');
-
- -- 2、hive自动计算其他日期(昨天,今天):
- -- hive中日期加减函数:date_add(start_date,num_days)
-
- -- 2.1) 取得昨天日期:
- select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
- select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
- select date_format(date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
-
-
- -- 2.2) 取得明天日期:
- select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
- select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
- -- 2.3)
- select trunc(current_date,'MM') as day;--当月第一天
- select last_day(current_date);--当月最后一天
- select trunc(current_date,'YY') as day;--当年第一天
- select next_day('2018-02-27 10:03:01', 'TU');--当前时间下一个星期几对应的日期
-
-
- -- 2.3)hive取得两个日期之间差值(差值为天数):
- -- datediff(date1,date2):date1大于date2,返回值为正,否则,返回值为负。
-
- select datediff(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-10));
- select datediff(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),10));
-
- 日期差值为月:
- 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(,'yyyymmdd'),'yyyy-mm-dd');
- 3.floor是取整函数。
-
- -- 2.4) 字符串转时间(字符串必须为:yyyy-MM-dd格式)
-
- select to_date('2017-01-01 12:12:12');
-
- -- 2.5) 日期、时间戳、字符串类型格式化输出标准时间格式:
-
- select date_format(current_timestamp(),'yyyy-MM-dd HH:mm:ss');
- select date_format(current_date(),'yyyyMMdd');
- select date_format('2017-01-01','yyyy-MM-dd HH:mm:ss'); --字符串必须满足yyyy-MM-dd格式
-
- -- 2.6) utc时间转换:
-
- select from_utc_timestamp(current_timestamp(),8);
- select to_utc_timestamp(current_timestamp(),8);
- --获取季度
- select floor(substr(‘2017-02-04‘,6,2)/3.1)+1
- --获取季度初始日期
- select (floor(substr(‘2017-02-04‘,6,2)/3.1)*3)+1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。