hive SQL日期应用

hive SQL中日期的综合应用
持续更新…

锁定日期

函数日期
current_date今天的日期
-- 上周末,至往前12周
dt between date_sub(next_day(current_date,'MO'),91) and date_sub(next_day(current_date,'MO'),8)
-- 上周末,至往前8周
dt between date_sub(next_day(current_date,'MO'),63) and date_sub(next_day(current_date,'MO'),8)
-- 最近3个完整自然月
dt between trunc(add_months(current_date,-3),'MM') and add_months(last_day(current_date),-1)
-- 上月、MTD及历史同期
where (dt between trunc(add_months(current_date,-2),'MM') and date_sub(next_day(current_date,'MO'),8)
or dt between trunc(add_months(current_date,-13),'MM') and add_months(last_day(current_date),-12))

时间计算

unix_timestamp 日期转时间戳
from_unixtime 转回日期格式

--转换标准时间格式后进行计算
--7200为2小时换成秒
select 
from_unixtime(unix_timestamp('2021-01-01 12:00:00')+7200,'yyyy-MM-dd HH:mm:ss')
--输出为:2021-01-01 14:00:00

-- 日期差值
datediff('2009-07-30', '2009-07-31')
-- 输出日期差值:-1 (前-后)

日期格式转换

unix_timestamp 日期转时间戳
from_unixtime 转回日期格式

select 
from_unixtime(unix_timestamp('20220615','yyyyMMdd'),'yyyy-MM-dd')
--20220615输出为:2022-06-15
datekey2date('20220615')
--20220615输出为:2022-06-15

--另外、简单替换方法,反向转换
pt = regexp_replace('2022-06-15', '-', '')

date2datekey('2022-06-15')
--2022-06-15输出为:20220615
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值