hive时间戳格式化HH和hh的区别
上周末做了一封自动邮件,把格式化时间HH写成hh。出现了意想不到的结果,以为是数据问题,其实是自己的问题
我们来看看上周遇到的问题:
12小时内的HH格式化:
spark-sql> select > from_unixtime(dateline,'HH') as hh,> count(1)> from > (select '1631727073' as dateline> union all> select '1631737873' as dateline> union all> select '1631739733' as dateline> union all> select '1631754132' as dateline> union all > select '1631764932' as dateline> ) t1> group by from_unixtime(dateline,'HH')> order by from_unixtime(dateline,'HH');
01 1
04 1
05 1
09 1
12 1
Time taken: 2.671 seconds, Fetched 5 row(s)
12小时内的hh格式化:
spark-sql> select > from_unixtime(dateline,'hh') as hh,> count(1)> from > (select '1631727073' as dateline> union all> select '1631737873' as dateline> union all> select '1631739733' as dateline> union all> select '1631754132' as dateline> union all > select '1631764932' as dateline> ) t1> group by from_unixtime(dateline,'hh')> order by from_unixtime(dateline,'hh');
01 1
04 1
05 1
09 1
12 1
Time taken: 2.671 seconds, Fetched 5 row(s)
从上面结果可以看出对于12小时之内,HH和hh是一样的。
不要简单的就以为两者没有区别,不分大小写,那你就大错特错了。
我们再来看看超过12小时会出现什么问题:
超过12小时的HH格式化:
spark-sql> select > from_unixtime(dateline,'HH') as hh,> count(1)> from > (select '1631727073' as dateline> union all> select '1631739733' as dateline> union all> select '1631754132' as dateline> union all > select '1631764932' as dateline> union all> select '1631768532' as dateline> ) t1> group by from_unixtime(dateline,'HH')> order by from_unixtime(dateline,'HH');
01 1
05 1
09 1
12 1
13 1
Time taken: 1.272 seconds, Fetched 5 row(s)
超过12小时的hh格式化:
spark-sql> select > from_unixtime(dateline,'hh') as hh,> count(1)> from > (select '1631727073' as dateline> union all> select '1631739733' as dateline> union all> select '1631754132' as dateline> union all > select '1631764932' as dateline> union all> select '1631768532' as dateline> ) t1> group by from_unixtime(dateline,'hh')> order by from_unixtime(dateline,'hh');
01 2
05 1
09 1
12 1
Time taken: 4.15 seconds, Fetched 4 row(s)
到这,应该都明白了,HH是24小时制,而hh是12小时制的。对于12小时以内的统计,HH和hh都可以用,对于12小时以外的统计,得要注意一下了。
hive时间戳格式化HH和hh的区别相关推荐
- JAVA和SQL中时间的格式化 (yyyy-MM-dd HH:mm:ss转换规则)知识总结
年(Year).月(Month).日(Day).时(Hour).分(Minute).秒(Second) 分别为时间基本单位.在Java和Oracle中的时间格式化转换语法中分别用其首字母代表对应的单位 ...
- 将时间戳格式化为yyyy-MM-dd hh:mm:ss格式(Vue) Moment
推荐方法: 文档 | Moment.js 中文网(可支持其他时间格式转换,英文,法文等.) //下载安装包 npm install moment -D//main.js引入包 import momen ...
- 【JS】JavaScript时间与时间戳相互转换 | 时间yyyy-MM-dd HH:mm:ss转为时间戳,时间戳转换为时间yyyy-MM-dd HH:mm:ss
时间与时间戳相互转换 1.2 时间 (JS常用时间类型) 1.2.1 GMT-格林尼治标准时 1.2.2 UTC- 协调世界时 1.2.3 中国标准时间 1.2.4 ISO8601标准时间格式 1.2 ...
- 简单示例立马搞懂Java日期格式中yyyy-MM-dd HH:mm:ss和YYYY-MM-dd hh:mm:ss的区别
word is weak,show me your code 啥也不说,上代码 /*** 测试两种不同的格式化*/public static void dateFormateTest() {Strin ...
- 时间戳转换成YY-MM-DD HH:MM:SS格式
时间戳转换成YY-MM-DD HH:MM:SS格式 formatDate (timeStamp) {// console.log('时间戳',timeStamp)timeStamp=`${timeSt ...
- JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别
其实就是一个很小的知识点,但是本人在开发中,踩到了坑. 把两个格式弄混了.程序中需要按日期查询,用到了hh的,结果总是少12个小时的数据.弄了半天,刚开始还以为是时区弄错了呢,后来才发现原来是hh和H ...
- js 格式化日期yyyy-MM-dd hh:mm:ss
js 格式化日期yyyy-MM-dd hh:mm:ss function formatDate(objDate,fmt) { var o = {"M+" : objDate.get ...
- 【vue】使用自定义指令实现时间戳格式化
时间戳的显示需求 在开发中,大多数情况下从服务器请求获取到的都是时间戳. 我们需要将时间戳转换成具体格式化的时间来展示. 在Vue2中可以通过过滤器(filter)来完成: 在Vue3中可以通过 计算 ...
- postgresql 时间戳格式化
平时总记不住pg里面怎么将时间戳格式化,记录常用的格式化时间 -- 年 select to_char(to_timestamp(1608018517000 / 1000),'yyyy'); -- 年- ...
最新文章
- 送书 | 深入浅出,一起学习贝叶斯!
- Linux进程突然挂死,当主进程突然死亡时,我该如何杀死linux spawnProcess?
- 关于git的使用记录总结
- ABP VNext从单体切换到微服务
- 评测通知 | 2022年全国知识图谱与语义计算大会评测任务发布
- 激动人心!柳叶刀杂志执行主编回柳叶刀烧烤吃烧烤了!
- CVPR 2019 | 旷视提出超分辨率新方法Meta-SR:单一模型实现任意缩放因子
- servlet-cookie实现向客户端写cookie信息
- ubuntu 12.04 ubuntu System program problem detected 解决方法
- Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
- 树莓派——实时时钟模块(RTC)
- 怎么做网站推广-网站推广100种方法
- 什么是互联网营销?看一篇这就够了
- 团队协作方法之:高效使用任务故事墙
- 谷歌drive收费_Google Drive的系统设计分析
- css首行缩进字符间距行高_黑暗代码风格的学院:换行,间距和缩进
- 2022安全员-C证试题模拟考试平台操作
- 3、Origin安装教程
- thinkpad装linux无线网卡驱动,ThinkPad E530 Fedora 20 下无线网卡驱动的安装
- 基于JAVA的购物网站(毕业论文)