hive 日期YYYY显示异常总结
总结下hive y 和 Y 的区别
y/Y | Meaning | 解释 |
---|---|---|
y | year-of-era | 元年,我们平时理解的年;20221231认为是2022年 |
Y | week-based-year | 基于周的年,只要日期那周跨年,都算下一年;2020-12-27周日,这周跨年,认为是2021年 |
问题记录
做数据验证发现数据异常;在执行以下hql在年底的时候会多加一年:
> select date_format('2020-12-31 00:00:00','YYYYMMddHHmmss');
20211231000000
使用不同日期反复排查验证,发现2020年底分界线是26号(周六,一周的结束);20201226之前的都能正常转换,20201227(周一,一周的开始)之后的都会多加1年;
> select date_format('2020-12-26 00:00:00','YYYYMMddHHmmss');
20201226000000
> select date_format('2020-12-27 00:00:00','YYYYMMddHHmmss');
20211227000000
查询hive文档得知YYYY(大写的Y)是基于周的年,指定日期的那周只要跨年了,就会算进下一年;
[https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结