Hive时间处理
时间戳:unix_timestamp
时间戳转日期:from_unixtime
常用时间写法
| 时间 | Hive语句 |
|---|---|
| 上月1号 | trunc(add_months(current_date(),-1),'MM') |
| 本月1号 | trunc(current_date(),'MM') |
| 下月1号 | trunc(add_months(current_date(),1),'MM') |
| 本月时间范围 | substr(date,0,10)>=trunc(current_date(),'MM') and substr(date,0,10)<trunc(add_months(current_date(),1),'MM') |
| 时间偏移一个月 | add_months(current_date,-1) |
| 上月时间范围 | substr(date,0,10)>=trunc(add_months(current_date(),-1),'MM') and substr(date,0,10)<trunc(add_months(current_date(),0),'MM') |
| 近一周数据 | substr(date,0,10)>=date_sub(current_date(),7) and substr(date,0,10)<current_date() |
| 近一月数据 | substr(date,0,10)>=date_sub(current_date(),30) and substr(date,0,10)<current_date() |
| 本周周一日期 | date_sub(current_date(),cast(date_format(current_date(),'u') as int)-1) |
| 上周周一日期 | date_sub(current_date(),cast(date_format(current_date(),'u') as int)-1+7) |
| 上周时间 | substr(date,0,10)>=date_sub(current_date(),cast(date_format(current_date(),'u') as int)-1+7) and substr(date,0,10)<date_sub(current_date(),cast(date_format(current_date(),'u') as int)-1) |
| 本周时间 | substr(date,0,10)>=date_sub(current_date(),cast(date_format(current_date(),'u') as int)-1) and substr(date,0,10)<current_date() |
| 今年年初日期 | trunc(current_date(),'YYYY') |
| 今年(到昨日) | substr(date,0,10)>=trunc(current_date(),'YYYY') and substr(date,0,10)<current_date() |
| 今年(到上月) | substr(date,0,10)>=trunc(current_date(),'YYYY') and substr(date,0,10)<trunc(current_date(),'MM') |