1.替代date_format(date/timestamp/string ts, string fmt)函数
在hive1.2以前hive不支持date_format函数,无法将非标准格式转换为可识别为日期的类型。可以先用unix_timestamp将非标准日期转换为计算机元年到该日期的秒数,然后将该秒数转换为对应时间戳格式。
select from_unixtime(unix_timestamp('201812', 'yyyyMM'),'yyyy-MM-dd')
2.yyyyMM求上个月日期
select from_unixtime(unix_timestamp(add_months(from_unixtime(unix_timestamp('201812', 'yyyyMM')),-1),'yyyy-MM-dd'),'yyyyMM')