当我跑的时候
SELECT
MAKEDATE(YEAR(CURDATE()), 1) + INTERVAL QUARTER(CURDATE())-1 QUARTER - INTERVAL 1 DAY
在这里,它按预期工作。然而,在hive中,我得到一个错误,我缺少一个右括号。我的问题是:
SELECT t1.*, t2.programme
FROM table1 t1
LEFT JOIN (SELECT programme FROM table2
WHERE yyyy_mm_dd = MAKEDATE(YEAR(CURDATE()), 1) + INTERVAL QUARTER(CURDATE())-1 QUARTER - INTERVAL 1 DAY
) t2 ON t2.id = t1.id AND t2.yyyy_mm_dd = t1.yyyy_mm_dd
我做错了什么?
编译语句时出错:失败:parseexception(第4:75行缺失)位于'quarter'l附近的'quarter'
我们正在使用hive v1.1.0。
2条答案
按热度按时间biswetbf1#
hive的语法和函数与mysql不同。
下面是配置单元支持的所有日期函数的列表。
使用这些函数,select查询将转换为:
r1wp621o2#
这可以通过多种方式实现。两种方法:
退货:
此处测试:http://demo.gethue.com/hue/editor?editor=326549
还有一种方法:
测试:http://demo.gethue.com/hue/editor?editor=326554
重要版本注意:在旧版本的hive中
current_date
可能不起作用,使用unix_timestamp()
取而代之的是:测试:http://demo.gethue.com/hue/editor?editor=326565
阅读手册,发明自己的方法。