配置单元版本为2.1.0
第1季度:
hive> select day, datediff(day, '2017-01-01') from mall_stat_daily where day='2017-11-13';
result:
2017-11-13 315
昆士兰州2:
hive> select day, datediff('2017-11-13', '2017-01-01') from mall_stat_daily where day='2017-11-13';
result:
2017-11-13 316
为什么这些有不同的结果?我还在mysql中测试了这些sql,得到了相同的结果“316”。
1条答案
按热度按时间dxxyhpgq1#
这是2.0.0中的一个bug,因为日期格式化程序在解析字符串中的日期时使用utc时区。当两个参数都是字符串类型时,这将正常工作,但当其中一个参数是字符串类型,而另一个是日期/时间戳类型时,它会给出不正确的结果,因为日期/时间戳值将具有基于本地时区日期的毫秒结果。这在2.3版本中已修复。https://issues.apache.org/jira/browse/hive-15338
希望这有帮助。