我有一个日常工作,它根据我使用配置单元日期函数派生的日期来处理负载。直到2天前,它运行良好,问题从2019年12月30日开始。当我使用日期格式时,它显示的是2020年,否则它显示的是2019年。见下文。
hive> select current_date;
OK
2019-12-31
Time taken: 0.182 seconds, Fetched: 1 row(s)
hive> select date_format(current_date,'dd-MMM-YYYY');
OK
31-Dec-2020
Time taken: 0.429 seconds, Fetched: 1 row(s)
hive> select cast(date_format(date_sub(CURRENT_DATE,1),'YYYYMMdd') AS string);
OK
20201230
还有其他人面临这个问题吗。
1条答案
按热度按时间cdmah0mi1#
看起来你犯了一个典型的错误。
一个常见的错误是使用yyy。yyyy指定日历年,而yyyy指定iso年-周日历中使用的年(周)。在大多数情况下,yyyy和yyyy产生相同的数字,但是它们可能不同。通常您应该使用日历年。
按以下方式更改代码(小写yyyy)以获得正确的结果:
请确保将当前的\u日期更改为“2019-12-31”,以便进行测试。