猪在三月份之前给予错误结果的天数

时间:2015-05-11 06:07:31

标签: hadoop apache-pig vertica

我正在尝试将vertica查询转换为Pig,它基本上找出两个日期之间的天数。当我转换代码并尝试在PIG中使用DaysBetween函数时,它仅为3月份提供不同的输出。 / p>

PIG结果:

Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01'),ToDate('2015-03-01')));
Output:- (30)

Vertica结果:

SELECT JULIAN_DAY('2015-04-01')-JULIAN_DAY('2015-03-01');
Output:- (31)

当我在一年中的其他几个月检查时,我没有收到任何错误。

PIG结果:

Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-03-04'),ToDate('2015-02-04')));
Output:- (28)

Vertica结果:

SELECT JULIAN_DAY('2015-03-04')-JULIAN_DAY('2015-02-04');
 Output :- 28

我无法找到差异的原因。需要就如何解决问题提出一些建议。

1 个答案:

答案 0 :(得分:0)

将时区指定为UTC或GMT将有所帮助。

Y = FOREACH X GENERATE
(DaysBetween((datetime)ToDate('2015-04-01', 'yyyy-MM-dd', 'UTC'),ToDate('2015-03-01', 'yyyy-MM-dd', 'UTC')));