例如,下面的配置单元脚本
select
from_unixtime(unix_timestamp('30-Apr-50', 'dd-MMM-yy'), 'yyyy-MM-dd') as date1,
from_unixtime(unix_timestamp('30-Apr-45', 'dd-MMM-yy'), 'yyyy-MM-dd') as date2,
from_unixtime(unix_timestamp('30-Apr-35', 'dd-MMM-yy'), 'yyyy-MM-dd') as date3;
结果如下
date1 date2 date3
1950-04-30 1945-04-30 2035-04-30
unix\u timestamp函数将2位数的年份转换为4位数的年份,其背后的逻辑是什么?当2位数年份转换为20**时,是否有固定的阈值?如果有,门槛是多少?是否有一种参数(“世纪之交”作为真实情况)我们可以根据某种条件设置世纪?
1条答案
按热度按时间jogvjijk1#
年份:。。。
对于使用缩写年模式(“y”或“yy”)进行解析,simpledateformat必须解释相对于某个世纪的缩写年。
它通过将日期调整为在SimpleDataFormat示例创建之前80年和之后20年内来实现这一点。
例如,使用“mm/dd/yy”模式和1997年1月1日创建的SimpleDataFormat示例,字符串“01/11/12”将被解释为2012年1月11日,而字符串“05/04/64”将被解释为1964年5月4日。
简化格式
代码遍历
hive/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/genericudfunixtimestamp.java
hive/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/genericftounixtimestamp.java