腾讯云大数据的一个客户,将oracle数据迁移到 hdfs ,做离线大数据处理。 数据处理过程中,会采用 hive sql 去实现 oracle sql 的一些相同功能。
本次案例,客户想要取得时间:月份减一个月。被修改的时间字段是 “年-月”格式的,效果就是2015-09,减一个月得到2015-08。如果用oracle去做,就很简单,直接调用三个函数:
客户想要在 hive 里面实现上述 oracle sql 的同样效果,必须要满足以下两个条件:
(1) 首先,hive 里面得有函数识别 “年-月”这种形式的时间格式;
(2) 然后,还得能够有函数能够实现 “年-月”时间格式的 “+1”或者“-1”功能;
(1) 首先,hive里面的to_date函数:日期时间转日期函数: to_date语法: to_date(string timestamp)
说明: 返回日期时间字段中的日期部分。
只能识别到
“年-月-日”
级别的时间,无法识别
“年-月”
级别的时间。