HiveQL Date_Add 问题
HiveQL Date_Add issue
使用 Hue 2.3.1-402,我注意到 HQL 的 date_add 函数存在一些错误,可能是由于 UTC 时区问题导致一天后得出结果。
运行 下面两个代码产生不同的结果:
SELECT DATE_ADD(TO_DATE('2015-02-22'), 25) AS d1_b
2015-03-19
SELECT DATE_ADD(TO_DATE(d1), 25) AS d1_b
FROM
(SELECT '2015-02-22' as d1) a
2015-03-18
当 date_add 函数计算多行数据时会出现类似的问题。 运行 没有 to_date 转换(使其保持为字符串)并给出相同的结果。
我在 hive 13.1 上测试了你的代码如下。它工作得很好。我不确定您为什么使用 to_date() ,其中 Returns 时间戳字符串的日期部分,因为您的日期似乎已经删除了时间戳。您的日期 '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成绩
您需要留下更多信息,以便有人帮助您进一步排除故障。
使用 Hue 2.3.1-402,我注意到 HQL 的 date_add 函数存在一些错误,可能是由于 UTC 时区问题导致一天后得出结果。
运行 下面两个代码产生不同的结果:
SELECT DATE_ADD(TO_DATE('2015-02-22'), 25) AS d1_b
2015-03-19
SELECT DATE_ADD(TO_DATE(d1), 25) AS d1_b
FROM
(SELECT '2015-02-22' as d1) a
2015-03-18
当 date_add 函数计算多行数据时会出现类似的问题。 运行 没有 to_date 转换(使其保持为字符串)并给出相同的结果。
我在 hive 13.1 上测试了你的代码如下。它工作得很好。我不确定您为什么使用 to_date() ,其中 Returns 时间戳字符串的日期部分,因为您的日期似乎已经删除了时间戳。您的日期 '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成绩
您需要留下更多信息,以便有人帮助您进一步排除故障。