我正在尝试将用 MySQL 编写的查询转换为 HiveQL 给我错误的查询部分是:
WHERE 1 = 1
AND table1.incoming_date >= DATE_SUB(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE()) - 1 DAY),INTERVAL 3 MONTH)
很可能是因为 Hive 中的 DATE_SUB() 不支持 INTERVAL。 那么,有人可以帮我转换这部分吗?
错误:
ParseException:
extraneous input 'DAY' expecting {')', ','}(line 179, pos 60)
最佳答案
也许您可以使用Hive date functions的组合来做到这一点date_sub
和 add_months
。
beeline> select current_date today, add_months(date_sub(current_date,1),-3) past_date;
INFO : OK
+------------+-----------+
| today | past_date |
+------------+-----------|
| 2020-08-13 | 2020-5-12 |
+------------+-----------|
1 row selected (0.101 seconds)
关于mysql - MySQL 到 HiveQL 转换时出现错误,包括 DATE_SUB 和 INTERVAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63394826/