Hive 命令行参数传递日期字符串对日期进行数学运算

问题描述 投票:0回答:1

我正在尝试将参数传递给我的 Hive 查询,如下所示:

hive --hivevar prev_year_sixmnth_date='2023-01-01' -e 'select ${hivevar:prev_year_sixmnth_date} as prev_year_sixmnth_date'

我得到的结果如下:

+-------------------------+
| prev_year_sixmnth_date  |
+-------------------------+
| 2021                    |
+-------------------------+

我认为 hive 正在对字符串 2023-01-01 执行一些减法运算,并将结果返回为 2021。如何获取作为参数传递的实际字符串?

我尝试过对选择查询中的参数使用强制转换为字符串、to_date 操作,但似乎没有任何效果!

sql hive
1个回答
0
投票

Hive 将值“2023-01-01”解释为日期,而不是字符串

为了防止该值作为字符串,您可以在使用

--hivevar
选项将参数传递到 Hive 时在参数周围添加引号。

hive --hivevar prev_year_sixmnth_date="'2023-01-01'" -e 'select ${hivevar:prev_year_sixmnth_date} as prev_year_sixmnth_date'

看起来是这样的

+-------------------------+
| prev_year_sixmnth_date  |
+-------------------------+
| 2023-01-01               |
+-------------------------+
© www.soinside.com 2019 - 2024. All rights reserved.