使用Hue 2.3.1-402,我注意到一些使用HQL的date_add函数的错误,可能会导致一天的结果,可能是由于UTC时区问题。
运行以下两个代码会产生不同的结果:
SELECT DATE_ADD(TO_DATE('2015-02-22'), 25) AS d1_b
2015年3月19日
SELECT DATE_ADD(TO_DATE(d1), 25) AS d1_b
FROM
(SELECT '2015-02-22' as d1) a
2015年3月18日
当date_add函数评估多行数据时,会出现类似的问题。没有to_date转换运行(保持字符串)并给出相同的结果。
答案 0 :(得分:1)
我在hive 13.1上测试了你的代码如下。它工作得很好。我不知道你为什么使用to_date()返回时间戳字符串的日期部分,因为你的日期似乎已经删除了时间戳。您的日期'2015-02-22'是一个字符串,因此to_date()不应该执行任何操作。
我的结果如下:
select date_add('2015-02-22',25) from table;
2015-03-19的结果
select date_add(to_date('2015-02-22'),25) from table;
2015-03-19的结果
SELECT DATE_ADD(TO_DATE(d1), 25) AS d1_b
FROM
(SELECT '2015-02-22' as d1 from table) a;
2015-03-19的结果
您需要为某人留下更多信息,以帮助您进一步排查问题。