Hive 配置单元在select语句中使用当前日期时更改当前日期格式

Hive 配置单元在select语句中使用当前日期时更改当前日期格式,hive,hiveql,Hive,Hiveql,我在Hive中有一个表,它按load\u date 现在我想从这个表中选择数据,其中load\u date是today select * from table where load_date = current_date; select * from table where load_date = 2018-09-26; 但是我使用的date\u格式是yyyy\u-MM\u-dd,当前日期是yyy-MM-dd格式 如何使用yyyy\u MM\u dd当前日期附近的 我想要的是在where子句

我在
Hive
中有一个表,它按
load\u date

现在我想从这个表中选择数据,其中
load\u date
today

select * from table where load_date = current_date;

select * from table where load_date = 2018-09-26;
但是我使用的
date\u格式是
yyyy\u-MM\u-dd
当前日期是
yyy-MM-dd
格式

如何使用
yyyy\u MM\u dd
当前日期附近的

我想要的是在where子句中使用当前的_日期

select * from table where load_date = 2018_09_26;
请喜欢下面的内容

select * from table where load_date = date_format(current_date, 'yyyy_MM_dd');

这将使用
where
子句中的函数将
日期格式
yyyy-MM-dd
转换为
yyyy\u-MM-dd

将防止分区修剪。您有两个选项:使用
yyyy-MM-dd
日期格式重新加载表格,或在
where
子句中使用之前计算变量

以下是如何在shell中以“yyyy\u MM\u dd”格式计算日期,并将其作为参数传递给脚本:

#!/bin/bash
date_var=$(date +'%Y_%m_%d')
#call your script
hive -hivevar date_var="$date_var" -f your_script.hql
select * from table where load_date = '${hivevar:date_var}';
并在脚本中使用变量:

#!/bin/bash
date_var=$(date +'%Y_%m_%d')
#call your script
hive -hivevar date_var="$date_var" -f your_script.hql
select * from table where load_date = '${hivevar:date_var}';
如果适用,重新加载选项是微不足道的