Hive 常用日期处理-昨天、本月、上月同期、去年同期、月初、月末等
一、参考日期为当前日期
以当前系统日期作为参考日期,将其转换为统一的天维度yyyyMMdd数据格式。 例如当前日期为2021-01-29
昨天
方式一:date_format(date_sub(current_date(),1), 'yyyyMMdd')
select date_format(date_sub(current_date(),1), 'yyyyMMdd')
20210128
方式二:date_format(date_sub(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),1),'yyyyMMdd')
select date_format(date_sub(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),1),'yyyyMMdd')
20210128
方式三:date_format(date_sub(to_date(current_date()),1),'yyyyMMdd')
select date_format(date_sub(to_date(current_date()),1),'yyyyMMdd')
20210128
本月
from_unixtime(unix_timestamp(), 'yyyyMM')
select from_unixtime(unix_timestamp(), 'yyyyMM')
202101
本月月初
CONCAT(from_unixtime(unix_timestamp(), 'yyyyMM'),'01')
select CONCAT(from_unixtime(unix_timestamp(), 'yyyyMM'),'01')
20210101
上月同期
date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-1),'yyyyMMdd')
select date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-1),'yyyyMMdd')
20201229
上月月初
CONCAT(date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-1),'yyyyMM'),'01')
select CONCAT(date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-1),'yyyyMM'),'01')
20201201
上月月末
date_format(date_sub(from_unixtime(unix_timestamp(CONCAT(from_unixtime(unix_timestamp(), 'yyyyMM'),'01'), 'yyyyMMdd'), 'yyyy-MM-dd'),1),'yyyyMMdd')
select date_format(date_sub(from_unixtime(unix_timestamp(CONCAT(from_unixtime(unix_timestamp(), 'yyyyMM'),'01'), 'yyyyMMdd'), 'yyyy-MM-dd'),1),'yyyyMMdd')
20201231
去年同期
date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-12),'yyyyMMdd')
select date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-12),'yyyyMMdd')
20200129
去年同期月初
CONCAT(date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-12),'yyyyMM'),'01')
select CONCAT(date_format(add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'),-12),'yyyyMM'),'01')
20200101
二、参考日期为指定日期
指定时间格式为yyyMMdd
昨天
date_format(date_sub(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),1),'yyyyMMdd')
select date_format(date_sub(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),1),'yyyyMMdd')
20210128
本月
substr('20210129',1,6)
select substr('20210129',1,6)
202101
本月月初
CONCAT(substr('20210129',1,6),'01')
select CONCAT(substr('20210129',1,6),'01')
20210101
上月同期
date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-1),'yyyyMMdd')
select date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-1),'yyyyMMdd')
20201229
上月月初
CONCAT(date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-1),'yyyyMM'),'01')
select CONCAT(date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-1),'yyyyMM'),'01')
20201201
上月月末
date_format(date_sub(from_unixtime(unix_timestamp(CONCAT(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyyMM'),'01'), 'yyyyMMdd'), 'yyyy-MM-dd'),1),'yyyyMMdd')
select date_format(date_sub(from_unixtime(unix_timestamp(CONCAT(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyyMM'),'01'), 'yyyyMMdd'), 'yyyy-MM-dd'),1),'yyyyMMdd')
20201231
去年同期
date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-12),'yyyyMMdd')
select date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-12),'yyyyMMdd')
20200129
去年同期月初
CONCAT(date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-12),'yyyyMM'),'01')
select CONCAT(date_format(add_months(from_unixtime(unix_timestamp('20210129', 'yyyyMMdd'), 'yyyy-MM-dd'),-12),'yyyyMM'),'01')
20200101
转载: http://www.saoniuhuo.com/article/detail-1181.html
Hive 常用日期处理-昨天、本月、上月同期、去年同期、月初、月末等相关推荐
- 【hive 日期函数】Hive常用日期函数整理
1.to_date:日期时间转日期函数 select to_date('2015-04-02 13:34:12'); 输出:2015-04-02 1 2 2.from_unixtime:转化unix时 ...
- 【hive 日期函数 大全】Hive常用日期函数整理 史上最全
[hive 日期函数 大全]Hive常用日期函数整理注意:1) hive 没有 to_char函数 2) HIVE 日期函数只识别 年-月-日 不能识别 年-月 ,所以处理月份的时候需要特殊处理1)h ...
- Hive常用日期格式转换
固定日期转换成时间戳 select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800 select unix_timestamp('2016 ...
- 【hive日期函数】hive常用日期函数+扩展
日期函数 1.from_unixtime:转化unix时间戳到当前时区的时间格式 select from_unixtime(1641044052,'yyyyMMdd'); --输出:20220101 ...
- Calendar日期类获取上月同期需求
业务需求:获取昨天,前天,以及上月同期时间的数据 首先我想到的是使用日期类Calendar去处理,Calender是java自带的一个用于日历的类,方便处理此类的时间问题. 在处理上月同期的时候我遇到 ...
- Hive常用运算(关系运算)、逻辑运算与数学运算、数值运算、日期函数、条件函数、字符串函数
hive 常用运算 第一部分:关系运算 Hive支持的关系运算符 •常见的关系运算符 •等值比较: = •不等值比较: <> •小于比较: < •小于等于比较: <= •大于比 ...
- hive获取月份_【Hive】Hive中常用日期函数整理
前言 使用hive进行时间处理的过程中,有时忘记一些常用的函数用法,现整理一下hive中常用日期函数,当做备忘录使用,忘记来翻阅一下. 1 时间戳转化日期函数 时间戳必须是10位,默认情况下转化为'y ...
- [Hive举例]-- hive获取今天、昨天、明天和前一个小时、后一个小时的日期
主题:解决hive获取今天.昨天.明天的日期的问题 注意:由于hive内置函数中,没有提供获取昨天和明天的日期函数,所以需要编写自定义函数去实现 1.获取今天时间(格式可以自定义) 语句: selec ...
- Hive常用函数(日期函数,取整函数,字符串操作函数,集合操作函数)
常用函数 常用日期函数 常用取整函数 常用字符串操作函数 集合操作函数 多维分析 常用日期函数 unix_timestamp:返回当前或指定时间的时间戳 select unix_timestamp() ...
最新文章
- TikTok跨境出海:Tiktok怎么月入几十W?
- Android init.rc文件解析过程详解(一)
- Codechef Yet another cute girl
- android中按一个按钮弹出字,允许用户在Android中长按一次即可编辑按钮文字
- 浮动div,回到顶部
- 基于Hibernate+spring的公司网站打造中(二)
- Android地图权限处理,Android 使用地图时的权限请求方法
- Linux中inode值是什么?
- input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格
- Git使用-.gitignore文件(使一些文件不上传到git)
- 《iVX 高仿美团APP制作移动端完整项目》07 会员页制作
- 中国计算机省份排名,大变局开启!2019全国各省GDP排名出炉,哪些省份掉队了?...
- 微服务拆分策略和原则
- c++调节控制台字体(c++入门练习)
- ubuntu 8.10安装配置经验(Intrepid Ibex)——转载
- 【中兴交换机MC-LAG配置】
- 计算机网络安全面试问题,2016计算机信息安全工程师面试题及答案
- 51单片机学习笔记【七】——蜂鸣器和继电器
- 家电售后php网站源码,php家电维修源码-第一次接触php语言的最经典,最简单的源代码!!!!!!!!!!-电气资讯 - 电工屋...
- JavaScript判断设备类型的实现
热门文章
- 正则表达式二:正则表达式元字符
- 工业相机的传感器靶面大小
- Android Dialer源码分析之拨号主界面ListsFragment
- 论文阅读(2021) 探讨语境在会话中话语层情绪、行为和意图分类中的作用
- socket.py line224 in meth return getattr(self._sock, name)(*args) error:[Error 2] No such file or di
- csgo国服社区服务器维护怎么玩,国服CSGO社区服玩法不“正经” 居然还能组队打僵尸!...
- SAP R/3,SAP ECC 和 SAP S/4HANA 的联系和区别
- api-project使用帮助文档
- LeetCode 160. 相交链表
- PyCharm - 码云(Gitee)