我正在尝试将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
我无法找到差异的原因。需要就如何解决问题提出一些建议。
答案 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')));