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}';
如果适用,重新加载选项是微不足道的