【问题标题】:Error in MySQL to HiveQL Conversion including DATE_SUB and INTERVALMySQL 到 HiveQL 转换中的错误,包括 DATE_SUB 和 INTERVAL
【发布时间】:2020-08-13 12:07:11
【问题描述】:

我正在尝试将用 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)

【问题讨论】:

  • 始终向我们展示错误
  • 包含错误
  • 蜂巢版本好吗?
  • 它是 PySpark 3.0.0 在 spark.sql 中使用它

标签: mysql hive hiveql


【解决方案1】:

也许您可以使用 Hive date functions date_subadd_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)

【讨论】:

  • 好一个@mazaneicha,+1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2019-09-15
  • 2018-12-27
  • 1970-01-01
  • 2016-09-15
  • 1970-01-01
  • 2021-01-29
相关资源
最近更新 更多