hive加减月份,获取上个月日期(前几个月)

 笔者需求:根据日期201910获取半年前的日期201904。读者需求:根据自身需求自行微调。

1,如果拿到的日期格式不是标准格式(yyyy-MM-dd HH:mm:ss),先转成时间戳。

select unix_timestamp('201910', 'yyyyMM') from dual;

--返回结果:1569859200

2,再将时间戳转成标准时间格式。

select from_unixtime(unix_timestamp('201910', 'yyyyMM'), 'yyyy-MM-dd HH:mm:ss') from dual;

--返回结果:2019-10-01 00:00:00

3,调用add_months函数,负数代表往历史方向减月份, 正数代表往未来方向加月份

(注:笔者往历史方向减半年6个月时间)

select add_months(from_unixtime(unix_timestamp('201910', 'yyyyMM'), 'yyyy-MM-dd HH:mm:ss'), -6) from dual;

--返回结果:2019-04-01

4,再将日期转成时间戳格式

select unix_timestamp(add_months(from_unixtime(unix_timestamp('201910', 'yyyyMM'), 'yyyy-MM-dd HH:mm:ss'), -6), 'yyyy-MM-dd') from dual;

--返回结果:1554048000

5,设置日期模板,转换成最终想要的日期格式

select from_unixtime(unix_timestamp(add_months(from_unixtime(unix_timestamp('201910', 'yyyyMM'), 'yyyy-MM-dd HH:mm:ss'), -6), 'yyyy-MM-dd'), 'yyyyMM') from dual;

--返回结果:201904

 

  • 7
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值