hive 3.1版本 和 1.2版本差异
最近新搭的平台用到了hive 3.1的版本,发现和1.2的版本用法上存在差异
hive 3.1源码
其中涉及到时间转化的两个常用函数 from_unixtime 和 unix_timestamp 两者的TimeZone不在是从hive配置或者系统配置中获取,而是直接写死的UTC
hive 1.2 最后获取依赖 rt.jar包
这样就导致了带参的from_unixtime 和 unix_timestamp 函数 结果就是以UTC来算的,而不是我们北京时间PRC
为了兼容原来的功能,我们需做代码层上的修改
如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from_unixtime: 1.2 版本: select from_unixtime( 1596988800 , 'yyyy-MM-dd HH:mm:ss' ); 3.1 版本: from_utc_timestamp( 1596988800 *1000L, 'PRC' ); //默认是yyyy-MM-dd HH:mm:ss 转化为其他格式: date_format(from_utc_timestamp(c_timestamp*1000L, 'PRC' ), 'yyyy-MM-dd HH' ) unix_timestamp: 1.2 版本: select unix_timestamp( '2020-08-10 23:42:11' , 'yyyy-MM-dd HH:mm:ss' ); 3.1 版本: unix_timestamp(to_utc_timestamp( '2020-08-10 23:42:11' , 'PRC' ), 'yyyy-MM-dd HH:mm:ss' ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理