select (unix_timestamp('2021-08-14 10:18:54')-unix_timestamp('2021-08-14 08:18:54'))/60
输出:120.0
23. 返回上个月第一天和最后一天
--上个月第一天
select trunc(add_months(current_timestamp(),-1),'MM');
select concat(substr(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1),1,7),'-01');
select trunc(add_months(current_timestamp(),-1),'MM');
输出:2021-07-01
--上个月最后一天
select last_day(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1)) ;
select date_sub(trunc(current_timestamp(),'MM'),1);
输出:2021-07-31
-- 获取当月第一天
select trunc(current_timestamp(),'MM');
select from_unixtime(unix_timestamp(),'yyyy-MM-01');
输出:2021-08-01
-- 获取当月最后一天
select last_day(current_timestamp());
select last_day(current_date());
输出:2021-08-31
Impala(时间处理,可类比到hive可用)
1. 获取当前时间
timestamp 样式2021-12-10 04:36:48.147046000
bigint 样式 1639110956
函数/方法 | 输出类型 | 说明/样式 |
current_timestamp() | timestamp | 所在时区的当前时间 |
now() | timestamp | 所在时区的当前时间 |
unix_timestamp() | bigint | 所在时区的当前时间戳 |
utc_timestamp | timestamp | UTC时区的当前时间 |
timeofday() | string | Fri Dec 10 12:39:46 2021 CST |
2. 获取时间指定单位函数
序号 | 函数/方法 | 输出类型 | 说明/样式 |
1 | year(timestamp/date) | int | 获取年 yyyy |
2 | quarter(timestamp/date) | int | 获取季度(1,2,3,4) |
3 | month(timestamp/date) | int | 获取月 |
4 | monthname(timestamp/date) | string | 获取月份名称 December |
5 | week(timestamp/date) | int | 获取周(1-53) |
6 | weekofyear(timestamp/date) | int | 获取周(1-53) |
7 | dayofweek(timestamp/date) | int | 获取天(本周第多少天,周日算第一天) |
8 | dayname(timestamp/date) | string | 获取天(星期几)Friday |
9 | next_day(timestamp/date, 10 | day(string)) | timestamp/date |
11 | day(timestamp/date) | int | 获取天(本月第多少天) |
12 相关阅读:
|