HiveQL Date_Add问题

时间:2015-07-01 07:56:31

标签: sql hadoop hive hiveql

使用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转换运行(保持字符串)并给出相同的结果。

1 个答案:

答案 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的结果

您需要为某人留下更多信息,以帮助您进一步排查问题。