如何在Hive QL中将日期格式转换为YYYYMMDD格式

问题描述

在Postgresql中,我可以使用:

to_char(current_date - 14,'YYYYMMDD') 

但是,这不是Hive接受的语法,我找不到该日期格式的正确功能

有人可以帮忙吗?

解决方法

在Hive中,通常会使用中间转换为unix时间戳:

from_unixtime(unix_timestamp() - 14 * 24 * 60 * 60,'yyyyMMdd')

unix_timestamp()返回当前日期/时间作为纪元时间戳;您可以减去14天(以秒表示),然后使用from_unixtime()将结果格式化为目标格式的字符串。

,

对于Hive版本=> 1.2.0,可以使用date_format函数。 date_sub功能也可用:

date_format(date_sub(current_date,14),'yyyyMMdd')