如何从shell中的max date中提取最后7天的行

q35jwt9p  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(422)

我要过去了 max(pay_date) 到一个变量 Max_date 在Hive表的壳中。的数据类型 pay_date 字段是 Date .
我想提取7天的 pay_dateMax_datepay_date 从table上。
我用下面的脚本。。。


# !/bin/bash

Max_date=$(hive -e "select max(pay_date) from dbname.tablename;")

hive -e "select pay_date from dbname.tablename where pay_date >= date_sub(\"$Max_date\",7);"

它没有给我任何输出。
我一直在传递一个带有日期值的变量,并在date\子函数中为最后7天的行使用它。
如果我缺少一些基本的东西,请告诉我。

w7t8yxp5

w7t8yxp51#

您可以这样运行查询:

hive -e "select o1.order_date from orders o1 join (select max(order_date) order_date from orders) o2 on 1=1 where o1.order_date >= date_sub(o2.order_date, 7);

您还可以将其用作shell脚本的一部分:

max_date=$(hive -e "select max(order_date) from orders" 2>/dev/null)

hive -e "select order_date from orders where order_date >= date_sub('$max_date', 7);"

相关问题