HQL (HIVE) date_format 在 2021 年 12 月 25 日之后增加一年

HQL (HIVE) date_format adding an extra year after Dec 25th 2021

我不确定这是否只是在我的本地实例上,或者这是否是一个基本问题,但对我来说在蜂巢中 date_format 在 2021 年 12 月 25 日之后跳了一年。

Select date_format('2021-12-25','YYYY-MM-dd') as Correct2021
        ,date_format('2021-12-26','YYYY-MM-dd') as Wrong2022
        ,date_format(date_add(current_date,51),'YYYY-MM-dd') as Correct2021b
        ,date_format(date_add(current_date,52),'YYYY-MM-dd') as Wrong2022b

上面的代码对我来说returns

correct2021 wrong2022 correct2021b wrong2022b
2021-12-25 2022-12-26 2021-12-25 2022-12-26

如果 运行 日期与 11/4/2021 不同,您需要调整添加日期。

事实证明这是 java 问题 'Y' 与 'y'。

问题描述如下: Y returns 2012 while y returns 2011 in SimpleDateFormat

Y 模式是一周年 - 某个周所属的一年。

y - 是您所需要的

Select date_format('2021-12-25','yyyy-MM-dd') as Correct2021
        ,date_format('2021-12-26','yyyy-MM-dd') as Wrong2022
        ,date_format(date_add(current_date,51),'yyyy-MM-dd') as Correct2021b
        ,date_format(date_add(current_date,52),'yyyy-MM-dd') as Wrong2022b

另见